请问,在struct
中,所有存取说明符(包括继承)是否都是public
?
换句话说:它们是否相等?
class C: public B, public A { public:
C():A(1),B(2){}
//...
};
并且
struct C: B, A {
C():A(1),B(2){}
//...
};
请问,在struct
中,所有存取说明符(包括继承)是否都是public
?
换句话说:它们是否相等?
class C: public B, public A { public:
C():A(1),B(2){}
//...
};
并且
struct C: B, A {
C():A(1),B(2){}
//...
};
是的,它们都是公开的。
struct A : B {
C c;
void foo() const {}
}
等同于
struct A : public B {
public:
C c;
void foo() const {}
}
对于基类,在 §11.2 中说明:使用 class 关键字定义的类的成员默认为私有。使用 struct 或 union 关键字定义的类的成员默认为公共。
这里引用的是 C++11 标准。在派生类定义时,如果没有为基类指定访问限定符,则假定为 public,当使用 class 关键字定义类时,默认为 private。
struct
时,它会继承其他类作为public
,除非您另行指定。