• (12)C++ 继承


      

    1继承语法

    class Base {
    public:
        void print() {
            cout << "Base" << endl;
        }
    };
    
    class Sun : public Base {
    
    };
    
    int main() {
        Sun s;
        s.print();
    }

    2继承访问权限

     子类继承父类时,会根据继承的三种方式改变子类继承成员的访问权限

    3.继承模型

    父类的所有成员变量和函数都会被子类继承,但会根据权限不同有的不能被调用

    查看方式:

    (1)打开开发者命令提示符

    从windows开始中打开

     (2)跳转到文件路径

    (3)cl /d1 reportSingleClassLayout类名 文件名

    cl /d1 reportSingleClassLayoutSun main.cpp

    注意: c后面时英文字母L,d后面是数字one

    class Base {
    public:
        int a;
        void print() {
            cout << "Base" << endl;
        }
    };
    
    class Sun : public Base {
        int b;
    }

     可以看到类内的成员被继承了下来

     4.继承中构造和析构顺序

    class Base {
    public:
        Base() {
            cout << "父类构造" << endl;
        }
        ~Base() {
            cout << "父类析构" << endl;
        }
    };
    
    class Sun : public Base {
    public:
        Sun() {
            cout << "子类构造" << endl;
        }
        ~Sun() {
            cout << "子类析构" << endl;
        }
    };
    
    int main() {
        {
            Sun s;
        }
    }

     生命周期符合栈的方式

    5.父类和子类的调用

    子类如果想要调用父类的成员变量或成员函数需要加作用域

    class Base {
    public:
        void print() {
            cout<<"父类"<<endl;
        }
    };
    
    class Sun : public Base {
    public:
        void print() {
            cout << "子类" << endl;
        }
    };
    
    int main() {
        {
            Sun s;
            s.print();
            s.Base::print();//方法子类对象父类需要加作用域
        }
    }

    静态的规则也相同

    5.多继承

    class Base1 {
    public:
        void print() {
            cout<<"父类1"<<endl;
        }
    };
    
    class Base2 {
    public:
        void print() {
            cout << "父类2" << endl;
        }
    };
    
    class Sun : public Base1, public Base2{
    public:
        void print() {
            cout << "子类" << endl;
        }
    };

     小心不同父类出现同名的情况

  • 相关阅读:
    IntelliJ IDEA配置Tomcat 与安装Tomcat失败原因
    IntelliJ IDEA创建JavaWeb工程及配置Tomcat部署
    IntelliJ IDEA 通过GsonFormat插件将JSONObject格式的String 解析成实体
    as 插件GsonFormat用法(json字符串快速生成javabean)
    AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案
    arraylist和linkedlist
    BNUOJ 3958 MAX Average Problem
    ZOJ 5579 Stean
    HDU 3401 Trade
    HDU 1695 GCD
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/11606102.html
Copyright © 2020-2023  润新知