C / C ++是一种语言还是两种语言?我听说C ++只是带有类的C语言。是吗?
答案 0 :(得分:67)
C++在1982 - 1983年与C分歧,这在计算机年代已经很长时间了。但是,有许多C库具有C ++兼容性,包括C标准库本身,并且源源不断的程序从C到C ++移植。许多C程序员只知道或使用与C ++兼容的功能。
它们由来自不同委员会的不同ISO标准定义。即使他们定义兼容的功能,它通常也会以不同的术语定义。
参考C / C ++与提及意大利语/西班牙语一样有效。你应该小心使用这个术语的人。但确实存在两个方向的思想扩散,而且相似之处不仅仅是巧合。
答案 1 :(得分:35)
“C / C ++”恰恰是零语言。它不存在。
另一方面,C是一种语言。
C ++是另一种语言,有点像C,但也有类和许多其他差异。
要明确的是,@ Zoidberg当场:
C和C ++是两种完全不同的语言。 C with Classes是C ++的前身,但这个术语仍然经常用于非现代C ++(例如,它使用原始指针)。
答案 2 :(得分:23)
这是两种语言。调用C ++“C with classes”就像把大象叫做四足动物一样。在将它与鼠标进行比较之前,这似乎是正确的。
有许多语言来源于C:C ++,Java,C#,JavaScript,csh,这个列表还在继续。它们在很多方面都有所不同,但它们的语法相似。
当然C来自B.但这是另一个故事(没有人关心B了。)
答案 3 :(得分:12)
简单回答:两种语言
它们是两种不同的语言,尽管几乎所有C代码都是有效的(不一定是好的)C ++代码。
C ++最初被认为是“C,但是有了类”,但随着时间的推移,它越来越不同,现在C代码是非常糟糕的C ++代码。您可以学习C或C ++或两者兼而有之,但通常不要混淆它们(但你可以)。
答案 4 :(得分:4)
C / C ++是两种语言。 C是一种语言,C ++是另一种语言。 C ++被认为是“更好的”C.C是程序性的,而C ++是面向对象的。 C ++比C有很多改进,并且与C语法类似。
答案 5 :(得分:4)
它们是两种不同的语言。 C ++是如此命名的,因为它的一部分源于C并且在某种意义上与C兼容。
根据Scott Myers的Effective C ++,我们可以将C ++视为具有以下4个组件的统一语言:
因此,在某种意义上,C ++比C更强大。
答案 6 :(得分:2)
名称"C"指的是一系列相关语言,其中一些被正式化为国际标准。其中包括K&R C,ANSI C,C99和C11。
名称"C++"指的是一系列相关语言,其中一些被正式化为国际标准。这些包括 C ++ 98, C++03, C++11, C++14, 和推测的C++17。
“C / C ++”一词是被许多人用来非正式地引用C和C ++的交集,它已经是intentionally maintained by the designers of C++。
事实上,C ++的直接前身最初被称为“C with Classes”。这在Bjarne Stroustrup 1994年出版的“C ++的设计和演变”(以及here)一书中有详细介绍。这个名字最终被改为“C ++”,主要是为了对C社区的礼貌,因为人们将“C with Classes”简化为“C”或“new C”已经太诱人了。C ++中有许多不在C语言中的语言特性(反之亦然)。特别是class-based model,由于它能够调用隐式函数调用,它是如此强大,以至于C ++(相当有机地)演化了更高级别的编程风格,使得C ++ 的典型用法大不相同而不是C.最值得注意的例子与名为Resource Acquisition Is Initialization的概念有关,它体现在标准类中 string,vector和shared_ptr以及standard I/O library的流类。
其他说明:
GCC allows you to specify您希望编译哪些语言版本(我确信其他编译器也是如此),但有一些限制。
C ++ 98和C ++ 03具有最小的功能差异,通常被视为essentially the same language。
解决C和C ++常见子集的主要问题:
答案 7 :(得分:1)
恕我直言,我认为答案是C / C ++不是一种语言,而是两种语言:
C ++语言源自C语言。 C ++是C编程语言的名称,增加了“类”功能。这意味着基本的C语言体系结构已得到增强,允许面向对象的编程。它使用“++”运算符表示增量。 C ++是C的增量,它允许您以编程方式使用过程方式或面向对象的方式或两者。 C ++允许我们比C更容易编写代码。但这并不意味着C语言现在不合适,因为我们有C ++。每种语言都用于程序员所需的软件目标。这就是ANSI将C作为标准的原因。