C++的定义已经作了许多修订,以保证任何同时在C和C++里合法的结构在两个语言中都具有同样的意义(除了少量例外)。
C语言本身也在发展和演化,部分地是在C++开发地影响之下。ANSI C标准就包含了从“带类的C”借去的函数声明语法。借鉴是双向的,例如void*指针类型是为ANSI C发明的,但是却在C++里第一次实现。正如本书第一版所允诺的,C++的定义已经过修订,以去掉无缘无故的不兼容性。今天的C++比原来更加与C兼容了。这里的想法是让C++尽可能接近ANSI C——但又不过于接近。百分之百的兼容性从来就不是目标,因为这将危害类型安全性以及用户类型和内部类型的平滑集成。
了解C并不是学习C++的先决条件。在C中编程序被鼓励使用的许多技术和诀窍由于C++语言的特征而变的多余了。例如,显性类型转换(casting)在C++里就没有在C里那么频繁。然而,好的C程序倾向于也是C++程序。例如,在Kernighan和Ritchie的《The C Programming Language》, 2nd Edition 里的每个程序都是C++程序。任何有关静态类型语言的经验对于学习C++也都能有所帮助。
以上引自Bjarne Stroustrup的《The C++ Programming Language (Special Edition)》。偶从中悟到的是:如果你能把C程序写得在C++编译器中也正常通过(没有warning),那也不是坏事。^_^ 所以,偶现在也就安心的做编写C代码的工作,业余研究研究C++了,两者并不冲突。:)
>> 本文固定链接: http://www.vcgood.com/archives/860