C++ class和struct的区别

来源:互联网 发布:centos下载apache教程 编辑:程序博客网 时间:2024/06/03 11:36

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 继承
原创粉丝点击