在c ++中inheritancestruct
一个struct
可以在C ++中inheritance吗?
是的, struct
是完全像class
除了默认的可访问性是public
的struct
(而它是private
的class
)。
是。 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; }