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/