我知道C++有对象的概念,但C没有.我也知道,几乎所有人都知道C适合K&R,但C++库要复杂得多.但是必须有其他重大差异.
C和C++之间的主要区别是什么?
C++语言说它们是相同的:
int C = 0; assert(C++ == C);
在这里查看Stroustrup的FAQ ,具体来说:
C和C++有什么区别?
C++是C的直接后代,它几乎将所有C保留为子集.C++提供比C更强的类型检查,并直接支持比C更广泛的编程风格.C++是"更好的C",因为它支持使用C完成的编程风格,具有更好的类型检查和更多的符号支持(没有损失)效率).同样,ANSI C是比K&R C更好的C.此外,C++支持数据抽象,面向对象编程和泛型编程(参见C++编程语言(第3版)";附录B讨论兼容性问题可用下载).
我想你回答了自己的问题:课程
它是一个完全不同的设计范例.我认为混乱是因为许多人开发的C++程序基本上都是C程序,甚至没有意识到.
根据其创建者的话,Stroustrup允许:
数据抽象
面向对象的编程
通用编程.
编辑:添加了一些其他有趣的东西
简而言之,C希望成为一种"便携式汇编语言".它保持简单,让你做几乎直接映射到底层硬件的东西,并没有提供很多高级抽象(你有功能和......就是这样)
C++试图成为一切.高级语言,低级语言,面向对象语言,多范式语言,系统编程语言,嵌入式编程语言和应用程序开发语言.
除了一些共享语法之外,这两种语言并没有太多共同之处.AC程序可能只编译为C++,只有很小的改动,但它与为该语言编写的"适当的"C++代码没有任何共同之处.
这是一个显示c和c ++之间"不兼容"的网站:
http://david.tribble.com/text/cdiffs.htm#C++-vs-C
实际上有很多领域c和c ++分歧(除了类,模板,异常等).
至于主要差异,这里列出了一个很好的清单:
匿名工会
类
构造函数和析构函数
异常和try/catch块
外部功能联系(例如,外部功能"C")
函数重载
成员职能
命名空间
new和delete运算符和函数
运算符重载
参考类型
标准模板库(STL)
模板类
模板功能