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关键字,这个函数就叫做虚函数,如果子类中有相同函数,这个时候就会调用子类中的函数。

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

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

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

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

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

      

  • 相关阅读:
    编译用到boost相关的东西,问题的解决;以及和googletest库
    看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph)
    centos5 升级到centos6
    Go vs Erlang
    Graphviz
    Oracle相关安装经验总结
    学习erlang书籍
    sublime使用总结
    List集合五种遍历方式
    nginx常用命令
  • 原文地址:https://www.cnblogs.com/gumpzlc/p/9463259.html
Copyright © 2011-2022 走看看