Answers:
是。默认情况下,继承是公共的。
语法(示例):
struct A { };
struct B : A { };
struct C : B { };
当然。在C ++中,结构和类几乎是相同的(小的差异包括默认为public而不是private)。
在C ++中,结构的继承与类相同,不同之处在于:
从类/结构派生结构时,基类/结构的默认访问说明符是public。当派生一个类时,默认的访问说明符是私有的。
例如,程序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;
d.x = 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;
d.x = 20; // Works fine because inheritance is public
getchar();
return 0;
}