结构和类之间的差异?

Nar*_*uto 0 c++ string class

结构是否支持继承?我认为这是一个愚蠢的问题,但我对此并不太了解.

编写这样的代码是什么意思:

struct A {
   void f() { cout << "Class A" << endl; }
};

struct B: A {
   void f() { cout << "Class B" << endl; }
};
Run Code Online (Sandbox Code Playgroud)

在结构中也会出现私有部分,它们不会给出封装吗?结构和类之间的主要区别是什么?

小智 10

是结构支持类所做的所有功能.不同之处是:

  • 结构继承默认是公共的
  • 结构成员默认是公共的

  • @yesraaj:结构和类之间没有那么区别,它是`struct`关键字不共享的`class`关键字的单独语法用法.更准确地说,我们可能甚至不应该在C++中讨论"结构":`struct A {};`定义一个类. (5认同)
  • @sinec:是的,这是可能的.结构和类不仅表现相似,*它们完全相同*.只是有两个不同的关键字可以定义一个类,你使用哪个关键字决定了默认的可访问性. (4认同)
  • @Solitaire Classes没有那些优点 - 请重新阅读我的答案.如果需要,您可以始终使用struct,但它通常保留为Plain Old Data(POD),即使用与C中使用的相同方式.但这只是一个命名约定. (2认同)

ebo*_*ebo 6

结构是具有默认可见性public的类.其他一切都是平等的.