Redian新闻
>
除了类,c++和C区别在那?
avatar
除了类,c++和C区别在那?# Programming - 葵花宝典
h*i
1
老有人问我程序用什么遍地,偶就说是c。C++和C还有大区别否?》
avatar
r*y
2
simple: C is a subset of C++
complex:C++ is far more complex than C, design patterns are different

【在 h***i 的大作中提到】
: 老有人问我程序用什么遍地,偶就说是c。C++和C还有大区别否?》
avatar
b*n
3
麻烦您拿C的nacro给我写个templated metaprogram吧,linked-list在compile-time的
sorting function。

【在 h***i 的大作中提到】
: 老有人问我程序用什么遍地,偶就说是c。C++和C还有大区别否?》
avatar
v*o
4
C++是C的超集,也可以说C是C++的子集。
C++增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽
管C++包含了所有的C,但显然没有任何C++编译器能编译这样的C程序。
C程序员可以省略函数原型,而C++不可以,一个不带参数的C函数原型必须把void写
出来。而C++可以使用空参数列表。
C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。
标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数。
C++中还增加了bool型变量和wchar_t型变量
C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。
C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。
在C语言中,输入输出是使用语句scanf()和printf()来实现的,而C++中是使用类来实现
的。
c++中引入了安全的类型转换机制
C++函数的原型中可以声明一个或多个带有默认值的参数。如果调用函数时,省略了相应
的实际参数,那么编译

【在 h***i 的大作中提到】
: 老有人问我程序用什么遍地,偶就说是c。C++和C还有大区别否?》
avatar
y*g
5
没看到template?

,尽
void写

【在 v*********o 的大作中提到】
: C++是C的超集,也可以说C是C++的子集。
: C++增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽
: 管C++包含了所有的C,但显然没有任何C++编译器能编译这样的C程序。
: C程序员可以省略函数原型,而C++不可以,一个不带参数的C函数原型必须把void写
: 出来。而C++可以使用空参数列表。
: C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。
: 标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数。
: C++中还增加了bool型变量和wchar_t型变量
: C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。
: C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。

avatar
v*o
6
觉得说下C中有的部分就可以了吧...木有的部分,显而易见啊....

【在 y*******g 的大作中提到】
: 没看到template?
:
: ,尽
: void写

avatar
x*l
7
zan

,尽
void写

【在 v*********o 的大作中提到】
: C++是C的超集,也可以说C是C++的子集。
: C++增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽
: 管C++包含了所有的C,但显然没有任何C++编译器能编译这样的C程序。
: C程序员可以省略函数原型,而C++不可以,一个不带参数的C函数原型必须把void写
: 出来。而C++可以使用空参数列表。
: C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。
: 标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数。
: C++中还增加了bool型变量和wchar_t型变量
: C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。
: C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。

avatar
l*g
8
好多年以前我以为C++是C的 superset
结果被一些prof狂鄙视
最后结论是
基本上 C++ 和 C 是完全不同的语言
(这个是从设计思想上说的, 不是仅仅是多个函数库什么的
也就是说, 写C程序的模块思路根本在C++里面不应该被使用 )
只是 C++ 保留了一些关键字来兼容 C
当然, 没有鄙视楼上各位的意思
因为这两个语言我都不常用, 其实没啥发言权
avatar
f*y
9
基本上一致认为这是不同的语言
一般来说大量的使用模板,异常,多态、继承才会被认为是c++程序

【在 h***i 的大作中提到】
: 老有人问我程序用什么遍地,偶就说是c。C++和C还有大区别否?》
avatar
d*q
10
you don't need to use template to develop your app. c++ supports different
ways to accomplish your task
avatar
f*y
11
严格来说c++是多范型的,你就算用c写一个过程式的程序也可以算c++程序
不过practice中你在简历上写会c++,人家都assume你会点继承啊模板啊啥的

【在 d***q 的大作中提到】
: you don't need to use template to develop your app. c++ supports different
: ways to accomplish your task

avatar
w*p
12
C++ = C + Objective C + templates + STL
avatar
c*x
13
C is precedure oriented , C++ object oriented.
avatar
t*u
14
your prof is right.
C focuses on verb, made by functions.
C++ focuses on noun, made by objects,
They have totally different concepts to write code.

【在 l****g 的大作中提到】
: 好多年以前我以为C++是C的 superset
: 结果被一些prof狂鄙视
: 最后结论是
: 基本上 C++ 和 C 是完全不同的语言
: (这个是从设计思想上说的, 不是仅仅是多个函数库什么的
: 也就是说, 写C程序的模块思路根本在C++里面不应该被使用 )
: 只是 C++ 保留了一些关键字来兼容 C
: 当然, 没有鄙视楼上各位的意思
: 因为这两个语言我都不常用, 其实没啥发言权

avatar
f*Q
15

Objective C的语法更像smalltalk而不是C。至于Objective C2.0,差别就更大了。

【在 w******p 的大作中提到】
: C++ = C + Objective C + templates + STL
avatar
T*x
16

C++抽象出object的概念,
为了方便的利用这个概念,语言的设计也有相应调整。
其余的没什么区别。当然这个区别也不小。
我们考虑真实世界中的问题是如何解决的吧。
首先是自顶向下的设计思想,这个是C/C++共有的,也是一切语言都必须共有的。
然后C++的方法是,把任务分配给各个职能部门----object,
职能部门要完成各种各样的功能,这又需要自顶向下的设计思想,
然后再分配给小的职能部门,就这样交替运用。
而C的方法是自顶向下一贯到底直到细枝末节。
object-oriented的概念存在于设计思想中,
清晰的提出这个概念,理论就上了一个台阶。
有了这个思想,用C也可以写出oo的程序。

【在 h***i 的大作中提到】
: 老有人问我程序用什么遍地,偶就说是c。C++和C还有大区别否?》
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。