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++了,两者并不冲突。:)
-
近期文章
近期评论
- coolker 发表在《打造最快的Hash表》
- struggle 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- diys 发表在《C语言编程宝典(王大刚) 1.1 C 语言的产生与发展》
文章归档
- 2022 年十月
- 2014 年一月
- 2013 年十二月
- 2012 年十一月
- 2012 年七月
- 2012 年六月
- 2012 年五月
- 2012 年四月
- 2012 年三月
- 2012 年二月
- 2011 年十二月
- 2011 年十月
- 2011 年九月
- 2011 年八月
- 2011 年七月
- 2011 年六月
- 2011 年五月
- 2011 年四月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年七月
- 2010 年六月
- 2010 年五月
- 2010 年四月
- 2010 年三月
- 2010 年二月
- 2010 年一月
- 2009 年十二月
- 2009 年十一月
- 2009 年十月
- 2009 年九月
- 2009 年八月
- 2009 年七月
- 2009 年六月
- 2009 年五月
- 2009 年四月
- 2009 年三月
- 2009 年二月
- 2009 年一月
- 2008 年十二月
- 2008 年十一月
- 2008 年十月
- 2008 年九月
- 2008 年八月
- 2008 年七月
- 2008 年六月
- 2008 年五月
- 2008 年四月
- 2008 年三月
- 2008 年二月
- 2008 年一月
- 2007 年十二月
- 2007 年十一月
- 2007 年十月
- 2007 年九月
- 2007 年八月
- 2007 年七月
- 2007 年六月
- 2007 年三月
- 2007 年二月
- 2007 年一月
- 2006 年十二月
- 2006 年十一月
- 2006 年十月
- 2006 年九月
- 2006 年八月
- 2006 年七月
- 2006 年六月
- 2006 年五月
- 2006 年四月
- 2006 年三月
- 2006 年二月
- 2006 年一月
- 2005 年十二月
- 2005 年十一月
分类目录
功能