首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 消费类电子 > 从C转向C++中文版

从C转向C++中文版

资料介绍
从C转向C++中文版从 C 转向 C++

对每个人来说,习惯 C++需要一些时间,对于已经熟悉 C 的程序员来说, 这个过程尤其令人苦恼。因为 C 是 C++的子集,所有的 C 的技术都可以继续使 用,但很多用起来又不太合适。例如,C++ 程序员会认为指针的指针看起来很 古怪,他们会问:为什么不用指针的引用来代替呢?

C 是一种简单的语言。它真正提供的只有有宏、指针、结构、数组和函数。 不管什么问题,C 都靠宏、指针、结构、数组和函数来解决。而 C++不是这样。 宏、指针、结构、数组和函数当然还存在,此外还有私有和保护型成员、函数 重载、缺省参数、构造和析构函数、自定义操作符、内联函数、引用、友元、 模板、异常、名字空间,等等。用 C++比用 C 具有更宽广的空间,因为设计时 有更多的选择可以考虑。

在面对这么多的选择时,许多 C 程序员墨守成规,坚持他们的老习惯。一 般来说,这也不是什么很大的罪过。但某些 C 的习惯有悖于 C++的精神本质, 他们都在下面的条款进行了阐述。

条款 1:尽量用 const 和 inline 而不用#define

这个条款最好称为: “尽量用编译器而不用预处理” ,因为#define 经常被认 为好象不是语言本身的一部分。这是问题之一。再看下面的语句: #define ASPECT_RATIO 1.653 编译器会永远也看不到 ASPECT_RATIO 这个符号名,因为在源码进入编译器 之前,它会被预处理程序去掉,于是 ASPECT_RATIO 不会加入到符号列表中。 如果涉及到这个常量的代码在编译时报错,就会很令人费解,因为报错信息指 的是 1.653,而不是 ASPECT_RATIO。如果 ASPECT_RATIO 不是在你自己写

的头文件中定义的,你就会奇怪 1.653 是从哪里来的,甚至会花时间跟踪下去。 这个问题也会出现在符号调试器中,因
标签:转向中文
从C转向C++中文版
本地下载

评论