我知道C ++不是C的严格超集。什么语言特性阻止C ++成为C的超集?
答案 0 :(得分:44)
房间里的大象:以下是有效的C但不是有效的C ++。
int typename = 1;
替换您最喜欢的C ++保留字。
答案 1 :(得分:21)
C ++也不支持可变长度数组,其中:
int array[n];
在C中有效,但在C ++中无效。以上的C ++版本将是:
int *array = new int[n];
...
delete [] array;
答案 2 :(得分:11)
有一个特殊的wiki条目,总结了很多问题。
答案 3 :(得分:8)
简单的例子,请考虑这个声明:
int f();
这是有效的C,但无效的C ++:f(3, 2, -5, "wtf");
说明:在C中,int f()
被视为int f(...)
(至少在第一个呼叫站点)。如果您不希望int f(void)
获取参数,请声明为f
。
答案 4 :(得分:2)
一个从头到尾 - C ++不支持默认的int。