zoukankan      html  css  js  c++  java
  • 继承

    面对对象的三个主要特征: 封装,继承,多态。

    而继承,通过继承机制,可以利用已有的数据或者方法来定义一个新的数据类型。

    父类:已经存在的数据或者方法,叫做基类。

    子类:由已经存在的类派生出来的新类,叫做派生类。

    1 class a{
    2 
    3 };
    4 
    5 class b : public a{
    6 
    7 };

    对于上面这两个类,a是基类,b是派生类,a是b的父类,b是a的子类。

    注意:

    1.父类的所有成员变量和成员函数,子类都拷贝了一份。但是父类的私有成员子类是没法访问的,父类的保护成员可以在子类中访问,当不可以在外部访问。

    2.先构建父类,在构建子类,但会先析构子类,再析构父类。

    3.在子类的初始化列表中构建父类,可以通过子类构造函数传递值给父类的方式初始化父类成员变量。

    4.子类要访问隐藏的成员变量或方法,必须明确指出父类:例如Child.Father::show();

    隐藏:如果子类定义了和父类一样的成员函数或者成员变量,子类会自动隐藏父类的相同版本。(重载)

    重载和隐藏的区别:() 

    隐藏是父子类之间,不在同一个作用域,而重载是相同作用域

    重载是函数名相同参数列表不同,而隐藏必须是函数名相同,参数列表也相同。

    对于继承,有三种继承的方式:

    1.公有继承:public,子类不会改变任何的访问限定,父类的私有成员子类没法访问,父类的公有成员子类也是公有的,父类的保护成员在子类也是保护的。

    2.私有继承:private,父类的私有成员变量,子类没办法访问;父类的公有成员变量,在子类中变成私有;父类的保护成员变量在子类中变成私有。即父类的所有公有和保护成员,在子类中,都是私有。

    3.保护继承:protected,父类的私有成员不可访问,父类的公有和保护都变成子类的保护。

  • 相关阅读:
    OpenCV用读取矩阵,访问图像数据
    OpenCV_Add方法
    OpenCV_颜色直方图的计算、显示、处理、对比及反向投影
    sift算法研究_无匹配
    OpenCV_轮廓例子
    OpenCV_用鼠标在窗口画方形
    【转】数字图像处理中的形态学
    OpenCV_ 滑动条模拟按钮
    OpenCV_轮廓的查找、表达、绘制、特性及匹配
    图像的膨胀与腐蚀、细化
  • 原文地址:https://www.cnblogs.com/ouyang_wsgwz/p/8438562.html
Copyright © 2011-2022 走看看