在完成我的C++类之后,在我看来,除了一些细微的不同之外,结构/类实际上是相同的。
我以前从来没有用C编写过程序,但我知道它有结构体。在C中,是否可以继承其他结构并将修饰符设置为public/private?
如果你可以用普通的C来做这件事,为什么我们还需要C++呢?什么使类不同于结构?
发布于 2010-05-01 23:08:18
其他的区别在于默认访问(public/private),没有区别。
然而,一些用C和C++编写代码的商店会使用“类/结构”来表示哪些可以在C和C++中使用(结构),哪些只是类( C++ )。换句话说,在这种风格中,所有的结构都必须与C和C++一起工作。这就是为什么在很久以前,当C++还被称为“带有类的C”时,就有了区别。
请注意,C联合使用C++,而不是相反。例如
union WorksWithCppOnly{
WorksWithCppOnly():a(0){}
friend class FloatAccessor;
int a;
private:
float b;
};
同样地,
typedef union friend{
int a;
float b;
} class;
仅适用于C++
发布于 2010-05-01 22:22:02
在C中不可能定义成员函数或从彼此派生结构。
而且,C++不仅仅是C++的“派生结构”。模板、引用、用户定义的命名空间和运算符重载在C中都不存在。
发布于 2012-09-12 20:07:53
C++中的另一个不同之处在于,当您从结构继承一个没有任何访问说明符的类时,它变成了公共继承,就像类一样,它是私有继承。
https://stackoverflow.com/questions/2750270
复制相似问题