在c ++中inheritancestruct

一个struct可以在C ++中inheritance吗?

是的, struct是完全像class除了默认的可访问性是publicstruct (而它是privateclass )。

是。 inheritance是默认公开的。

语法(示例):

 struct A { }; struct B : A { }; struct C : B { }; 

除了Alex和Evan已经说过的之外,我想补充一点,C ++结构不像C结构。

在C ++中,结构可以像C ++类一样具有方法,inheritance等。

当然。 在c ++中,结构和类几乎是相同的(像是默认为公共而不是私有是小的区别)。

在C ++中,结构inheritance与类相同,除了以下的区别:

从类/结构派生结构体时,基类/结构体的默认访问说明符是公共的。 当派生类时,默认访问说明符是私有的。 例如程序1编译错误失败,程序2正常工作。

 // Program 1 #include <stdio.h> class Base { public: int x; }; class Derived : Base { }; // is equivalent to class Derived : private Base {} int main() { Derived d; dx = 20; // compiler error because inheritance is private getchar(); return 0; } // Program 2 #include <stdio.h> struct Base { public: int x; }; struct Derived : Base { }; // is equivalent to struct Derived : public Base {} int main() { Derived d; dx = 20; // works fine because inheritance is public getchar(); return 0; }