当前位置:  开发笔记 > 编程语言 > 正文

C和C++之间的主要区别是什么?你何时会选择其中一个?

如何解决《C和C++之间的主要区别是什么?你何时会选择其中一个?》经验,为你挑选了4个好方法。

对于那些对两者都有经验的人来说,主要的区别是什么?对于任何一个新手,哪个更好学习?有没有你可以选择C的情况,还有其他你会选择C++的情况?是使用最好的工具还是一个明显优于另一个的情况.我知道C++是C的"增强",但它是在'83创建的,并没有完全取代C所以必须有更多的东西.

我知道这个问题是主观的,我不是要开始任何宗教战争,所以请尽量做到客观.明确优势和劣势以及比较.



1> Johannes Sch..:

虽然C是一种纯粹的过程语言,但C++是一种多范式语言.它支持

通用编程:允许编写一次代码,并将其与不同的数据结构一起使用.

元编程:允许在编译时利用模板生成有效的代码.

检查:允许在编译时检查某些属性:表达式具有什么类型?一个函数有多少个参数?每个人都有什么类型?

面向对象编程:允许程序员编程面向对象,具有多重继承和私有继承等复杂功能.

程序编程:允许程序员放置任何类的函数.结合ADL等高级功能,可以编写与某些类的细节分离的干净代码.

除此之外,C++在很大程度上保持了与C代码的兼容性,但存在一些差异.这些可以在C++标准的附录D中阅读,以及使C代码有效C++代码的原因和可能的修复.



2> user54650..:

C++是99%C语言的超集.它的语法更加严格,在变化方面有一些非常小的差异.

最大的区别是C++尝试面向对象.有本地支持类.

在C++中还有一些其他特权:模板,流操作符,传递引用(比指针传递更容易混淆)

你输入C++会失去什么?它缺少许多人使用C的最低级别的黑客攻击.我不记得其中任何一个,但我从来没有听到任何好的理由来欺骗编译器做你想做的事情,除非作为一种方法来提高10%的效率.



3> Sean Edwards..:

正如其名称所暗示的那样,C++正如您在问题中所说的那样,C语言的增强.这是一个重要的增强.(我使用术语'增强'来指代特征,而不是功能.)然而,关于增强的事情是它意味着增长.C++通常适用于更大的程序.应用程序,真的.它是一种高性能语言,但它很大.

另一方面,C用于内核和驱动程序编程是有原因的.这是古老的(古老?),小,如果你很聪明,你可以在没有自己编写汇编程序的情况下尽可能快地获得.显然,权衡是特征.C没有像C++程序员喜欢的类和模板这样的很好的大软弱概念,这些概念是理所当然的(是的,完全有罪).

因此,为了更直接地回答您的问题,我的大多数高性能项目都是用C++编写的.如果我正在开发类似驱动程序或嵌入式系统的东西,我期望使用C.



4> user21714..:

如果您从未使用过要求您进行手动内存管理的语言,我会首先使用C语言.

专注于C基础知识,如字符串,函数指针,以及如何使用和管理内存.当您转换到C++时,这些都会转移.最重要的是,确保你真正了解指针,它们与内存的关系以及指针和数组之间的关系.我会说是一个全面的程序员,理解这些东西是必需的.

然后,转到C++并了解OO模型,模板等.尝试从一开始就用C++完成所有工作可能有点压倒性.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有