• 标准C++(4)继承


    一、继承的作用

    若A类继承了B类,可以使A类获得B类中的部分成员变量和成员函数,这能使程序员在已有类的基础上重新定义新的类。继承是类的重要特性,当A类继承了B类,我们称A类为派生类或子类,B类为基类或父类。

    派生类能够从基类中得到的成员由基类中成员的访问权限有关。关于成员的访问权限,以下将会继续讨论。

    二、继承中的访问权限

    【例】继承的语法

    class B
    {
    public :
        int num1;
    protected:
        int num2;
    private:
        int num3;
    }
    
    class A : public B
    {
    
    }

    上面的例子里,A类继承了B类,

    A类能够得到 B类中访问权限是 protected 和 public 的成员。

    而B类中 private 的成员A类是无法继承的。

    具体的访问权限可以看下面的表格:

    三、三种继承方式

    派生类不同的继承方式会影响从基类继承来的成员的访问属性,不同的继承方式不会影响能从基类继承的成员,也就是说基类里私有的(private )成员仍然无法继承

    class A : 继承方式 B

    {

    }

    三种继承方式

    public:不改变从继承来的成员的访问属性。

    protected :继承来的成员访问属性设置为 protected

    private:继承来的成员访问属性设置为 private

    四、继承的构造、析构、拷贝

    1、在继承时先调用父类的构造函数,再调用子类的构造函数

    2、在继承中先调用子类的析构,在调用父类的析构

    3、在调用拷贝构造时会先调用父类的拷贝构造,再调用子类的拷贝构造

    4、在C++中继承可以有多个父类,在构造时会按继承表的顺序调用父类的构造函数。

    5、在析构时子类会先调用自己的析构函数,然后再按照继承表的逆序调用父类的析构函数

    五、继承中要注意的问题

    1、继承虽然可以获取父类中的成员,但子类中如果有同名成员,那么子类的成员将会隐藏掉继承来的成员

    2、父子类中的函数不可以形成重载,实际上父子类之间并不在同一作用域,因此也不会形成重载

  • 相关阅读:
    爬虫之JSON
    爬虫bs4案例
    爬虫bs4
    爬虫之Xpath案例
    爬虫之xpath
    监控 Kubernetes 集群应用
    手动部署k8s-prometheus
    ingress之tls和path使用
    ingress安装配置
    kube-dns和coreDNS的使用
  • 原文地址:https://www.cnblogs.com/unjack/p/9483518.html
Copyright © 2020-2023  润新知