新手笔记本—C++ 继承(public、protected、private)构造与析构

来源:互联网 发布:开淘宝网店花钱吗 编辑:程序博客网 时间:2024/06/07 16:30

访问权限:

public(公有) -内部、 子类、 外部    (客厅- 大家都能参观)                                   最高级

protected(保护)-   内部 、子类     (卧室-只有你和你媳妇还有儿子能进去)    中级

private(私有) - 内部                          (加密加密加密保险箱-只有你自己能打开)最低级

继承

class  B: public A   B类继承了A类的成员变量以及方法 (public), A为基类 (父类)B为派生类(子类)。


继承特性:

public继承:       (父类)public       ——(子类)public

                              (父类)protected ——(子类)protected

                              (父类)private       ——    子类无权限访问


protected继承: (父类)public       ——(子类)protected

                              (父类)protected ——(子类)protected

                              (父类)private       ——    子类无权限访问  


private继承:      (父类)public       ——(子类)private

                              (父类)protected ——(子类)private

                              (父类)private       ——    子类无权限访问


(!!!子类的所有访问特性级别不能高于继承模式。)


父类先构造,子类再构造。

子类先析构,父类再析构。


构造函数调用先后 示例程序:

#include<iostream>
using namespace std;

class A    //先定义A类
{
public:
A()    //A类的构造函数
{
cout<<"A"<<endl;
}
};

class B: public A   //B类继承A类
{
public:
    B()             //B类的构造函数
{
cout<<"B"<<endl;
}
};

void main()
{
    B b;         // 结果显示先输出A再输出B
}


析构函数调用先后 示例程序:

#include<iostream>
using namespace std;

class A    //先定义A类
{
public:
A()    //A类的构造函数
{
cout<<"A"<<endl;
}
~A()  //A类的析构函数
{
cout<<"AA"<<endl;
}
};

class B: public A   //B类继承A类
{
public:
    B()             //B类的构造函数
{
cout<<"B"<<endl;
}
    ~B()             //B类的析构函数
{
cout<<"BB"<<endl;
}
};

void main()
{
    B b;         // 结果显示
}











原创粉丝点击