class 和 struct的一个区别就是对默认的继承访问权限不同
class的默认访问属性是私有的(private),而struct的默认访问属性是公共的(public)
用class定义类:
class A{
int i;
};
这与下面代码等价:
class A{
private:
int i;
};
而用struct定义类:
struct A{
int i;
}
这样下面代码等价:
struct A{
public:
int i;
};
因此我们可以得知:
struct A
{
int a;
};
struct B : A
{
int b;
}; //这里的 B 是以public的方式继承 A 的。
class A
{
int a;
};
class B : A
{
int b;
}; //这里的 B 是以private的方式继承 A 的,这也就是默认的继承访问权限。
因此,在写类继承的时候,我们通常这样写:
class B : public A
目的是为了指明是public继承,而不是用默认的private继承。
默认的继承方式取决于子类而不是基类,例如:
struct A{};
class B : A{}; // private 继承
struct C : B{}; // public 继承