首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C/C++结构vs类

C/C++结构vs类
EN

Stack Overflow用户
提问于 2010-05-01 22:20:28
回答 4查看 107K关注 0票数 122

在完成我的C++类之后,在我看来,除了一些细微的不同之外,结构/类实际上是相同的。

我以前从来没有用C编写过程序,但我知道它有结构体。在C中,是否可以继承其他结构并将修饰符设置为public/private?

如果你可以用普通的C来做这件事,为什么我们还需要C++呢?什么使类不同于结构?

EN

回答 4

Stack Overflow用户

发布于 2010-05-01 23:08:18

其他的区别在于默认访问(public/private),没有区别。

然而,一些用C和C++编写代码的商店会使用“类/结构”来表示哪些可以在C和C++中使用(结构),哪些只是类( C++ )。换句话说,在这种风格中,所有的结构都必须与C和C++一起工作。这就是为什么在很久以前,当C++还被称为“带有类的C”时,就有了区别。

请注意,C联合使用C++,而不是相反。例如

代码语言:javascript
复制
union WorksWithCppOnly{
    WorksWithCppOnly():a(0){}
    friend class FloatAccessor;
    int a;
private:
    float b;
};

同样地,

代码语言:javascript
复制
typedef union friend{
    int a;
    float b;
} class;

仅适用于C++

票数 16
EN

Stack Overflow用户

发布于 2010-05-01 22:22:02

在C中不可能定义成员函数或从彼此派生结构。

而且,C++不仅仅是C++的“派生结构”。模板、引用、用户定义的命名空间和运算符重载在C中都不存在。

票数 6
EN

Stack Overflow用户

发布于 2012-09-12 20:07:53

C++中的另一个不同之处在于,当您从结构继承一个没有任何访问说明符的类时,它变成了公共继承,就像类一样,它是私有继承。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2750270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档