Grz*_*cki 5 c++ inheritance struct
你能保证我,如果在所有访问修饰符(包括继承)struct是public?
换句话说:那些是平等的吗?
class C: public B, public A { public:
C():A(1),B(2){}
//...
};
Run Code Online (Sandbox Code Playgroud)
和
struct C: B, A {
C():A(1),B(2){}
//...
};
Run Code Online (Sandbox Code Playgroud)
是的,他们都是公开的.
struct A : B {
C c;
void foo() const {}
}
Run Code Online (Sandbox Code Playgroud)
相当于
struct A : public B {
public:
C c;
void foo() const {}
}
Run Code Online (Sandbox Code Playgroud)
对于成员,它在§11中指定:
默认情况下,使用关键字class定义的类的成员是私有的.默认情况下,使用关键字struct或union定义的类的成员是公共的.
对于§11.2中的基类:
在没有基类的访问说明符的情况下,当使用类 - 键结构定义派生类时假定为public,并且在使用类 - 键类定义类时假定为private.
其中引用的是C++ 11标准.