zoukankan      html  css  js  c++  java
  • C++开发系列-纯虚函数和抽象类

    概念

    纯虚函数和抽象类

    • 纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都实现该函数。
    • 纯虚函数为各派生类提供了一个公共界面(接口的封装和设计、软件的模块功能的划分)

    纯虚函数说明的形式

    一个具有纯虚函数的基类称之为抽象类。

    抽象类可以声明抽象类指针,通过抽象类指针调用子类的方法,类似java的接口。但是不可以实例化对象。

    定义一基类Person

    #ifndef Person_hpp
    #define Person_hpp
    
    #include <stdio.h>
    
    class Person // 抽象类
    {
    public:
        virtual void run() = 0; // 纯虚函数
        virtual void eat() = 0;
    };
    #endif /* Person_hpp */
    

    定义一个Teacher类集成Person类,实现Person的虚构函数

    /**-------------------------Teacher.h--------------------------*/
    #include <stdio.h>
    #include "Person.hpp"
    class Teacher: public Person
    {
    public:
        virtual void run();
        virtual void eat();
        
    private:
        char *name;
    };
    
    /**-------------------------Teacher.cpp--------------------------*/
    #include "Teacher.hpp"
    
    void Teacher::run(){
        printf("Teacher----------run
    ");
    }
    
    void Teacher::eat()
    {
        printf("Teacher----------eat
    ");
    }
    

    抽象类的使用

    - (void)viewDidLoad {
        [super viewDidLoad];
        
        // 抽象类指针指向子类的示例
        Person *p = new Teacher();
        p->eat(); // 通过抽象类指针调用子类示例的方法
        p->run();
        
    }
    
  • 相关阅读:
    C++ 纸牌 今日头条面试题
    c++ 病句 今日头条面试题
    C++ 球迷 今日头条面试题
    C++ 活动安排
    C++ 弗洛伊德算法
    填坑 bzoj3337
    bzoj3884 上帝与集合的正确用法
    人参中第一次膜你退货
    洛谷P2216 [HAOI2007]理想的正方形
    洛谷 P1099 树网的核+P2491 [SDOI2011]消防
  • 原文地址:https://www.cnblogs.com/CoderHong/p/9121725.html
Copyright © 2011-2022 走看看