• C++的多态


        继承、封装、多态是面向对象编程最主要的三个特征,有人说多态是理解C++最难理解的一部分,其实我觉得单单从技术上讲,多态并不难,难的是你需要懂得在何时使用多态,就像封装一样,封装本身不难,难的是你对整个事物和需求的理解,以及如何封装会更好。

    多态的最简单使用:关键字virtual,虚函数是实现多态最核心的概念;记住一句话,父类的指针指向子类的对象。这是实现多态最基本的要领。

    举个最简单的例子:

    父类:Base, 两个子类:firstChild, secondChild;

    Base.h

    #include <iostream>

    class Base {

    public:

      virtual  void  shoot() {

      std::cout<<"base shoot......"<<std::endl;

    }

    }

    firstChild.h

    #include <iostream.h>

    #include "Base.h"

    class firstChild : public Base {

    public :

      virtual void shoot() {

      std::cout<<"firstChild shoot ......"<<std::endl;

    }

    }

    secondChild.h

    #include <iostream>

    #include "Base.h"

    class secondChild : public Base {

    public:

      virtual void shoot(){

      std::cout<<"secondChild shoot......"<<std::endl;

    }

    }

    在main函数里面调用

    #include "Base.h"

    #include "firstChild.h"

    #include "secondChild.h"

    int main(int argc, const char * argv[]){

      Base * first = new firstChild();        //父类的指针指向子类的对象

      Base * seconf = new secondChild();

      first->shoot();          //子类如果覆盖了父类的虚函数,则调用子类的,如果没有覆盖,则调用父类的;

      second->shoot();

      return 0;

    }

    输出结果:

    firstChild shoot......

    secondChild shoot ......

  • 相关阅读:
    airodump-ng的使用及显示
    bash shell 遍历一个数组
    cisco 交换机 IOS命令
    apt-key Debian packages密钥管理命令
    find命令的用法
    bash的快捷键
    groff编写man页
    tcpdump软件使用
    vue 项目常见功能(搜索 时间戳转换 过滤器)
    vue2.0 常见功能 (v-for 配置路由 组件渲染)
  • 原文地址:https://www.cnblogs.com/alex-zhou/p/4213944.html
Copyright © 2020-2023  润新知