c++ - 在 C++ 中,为什么 struct 实际上是类?

标签 c++ oop class struct backwards-compatibility

other topic那里的回答让我问了这个问题:

为什么 C++ 允许 struct 表现得像 class?一方面,C++ 通过使其成员默认为公共(public)(就像在 C 中一样)使其与 C-struct 兼容,而另一方面,它使它看起来-like 类,允许它从类继承,并应用其他面向对象的技术(不再像 C-struct 了)。为什么不让它成为没有 OOP 的普通旧 C-struct?有什么特殊原因吗?

最佳答案

它允许以更自然的方式将现有结构与 C++ 代码相匹配。例如,您可以将成员函数添加到结构并从结构继承,如果结构和类位于不同的宇宙中,这是不可能的。

Stroustrup 的初衷是避免传统 C 风格“struct”阵营与 OO“class”人群之间的社区 split 。他还列举了只有一个概念而不是两个概念的好处。

关于c++ - 在 C++ 中,为什么 struct 实际上是类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4427759/

相关文章:

C++ 在静态函数中使用非静态变量返回类实例

c# - 模型设计为数据库表还是多维列表?

c++ - 指向不同类的共享指针数组

c++ - 当容器中的基本元素是 boost::tuple 时,为什么我不能使用 std::find?

c++ 使用 *& 作为参数(指针乐趣,三级树方法)

oop - 面试中用于编码测试的OOP问题

java - 如何从适用于多个类类型的方法返回实际类型而不是对象类型?

c++ - 如何使用 gcc 原子内置函数?

c++ - 为什么全局 merge() 函数与 std::merge() 冲突?

java - Java 中的 .class 到底返回了什么?