zoukankan      html  css  js  c++  java
  • C++中基类与派生类的关系,以及相关的继承方式

    一.

      类与类之间存在相同,也存在差异,于是就有了基类(基础类)也叫父类,基础类+差异就有了派生类(子类)

      继承的是子类(派生类),被继承的是父类(基类)‘;

      基类的出现可以节省大量的代码(代码复用),节省开发时间,缩短开发周期,但是提高了类与类之间的耦合度,降低了代码的安全性与可维护性

    二. 继承方式:

      class 类名:继承方式 基类1,继承方式 基类2................

      {

        ........................

      }

    三.继承的效果与问题:

      子类可以继承父类中的所有成员,

      例:

      父类:class Fa    子类:class Son 

        Fa *fa = new Son;  如果子类中有和父类中相同的成员,则会调用父类中的成员,这种叫隐藏(子类隐藏父类)

        Son *son = new Son;  这个时候会调用子类的;

      父子类不可以形成重载,只有在统一作用域下同名不同参或const属性的函数才能形成重载

      在子类中可以访问父类的权限:

      父类中的:

      public:在子类中可以访问,protceted:在子类中可以访问,private:在子类中不可以访问

      !!!:继承方式:

      public:不变  protected:公有变保护,其他不变  private:全部变私有

    四.虚函数

      虚函数是实现多态的基础;

      在父类中的函数加virtual关键字,这个函数就叫做虚函数,如果子类中有相同函数,这个时候就会调用子类中的函数。

    五.继承中的构造,拷贝与析构

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

      在析构的时候,先调用自己的析构函数,在调用父类的

      拷贝的时候顺序与构造函数一样,

      可以继承多个父类,在构造时按顺序调用父类的构造,但是在析构的时候就先调用自己的,再按逆序调用析构函数

      

  • 相关阅读:
    LINQ使用的一点心得 子曰
    Extjs的grid的单元格中加载超链接和按钮 子曰
    关于建立“高保真模型”的必要性 子曰
    DHL:jQuery框架学习使用总结,插件,继续中...
    dhl:mvc用户登陆身份验证
    thickbox.js 及 将thickbox "close or esc key "改为 中文"关闭"
    在 jQuery 中如何判断对象是否存在
    jquery弹出层实例
    dhl:jquery select下拉框,checkbox,选择
    asp.net mvc 中"未找到路径“/favicon.ico”的控制器或该控制器未实现 IController。"
  • 原文地址:https://www.cnblogs.com/gumpzlc/p/9463259.html
Copyright © 2011-2022 走看看