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();
        
    }
    
  • 相关阅读:
    [BZOJ 4710] 分特产
    洛谷 P4827 [国家集训队] Crash 的文明世界
    Test 7.12 T2
    [洛谷 P1377] TJOI2011 树的序
    [洛谷 P1013] NOIP1998 提高组 进制位
    ajax2
    Ajax
    javascript下兼容都有哪些
    获取类名 封装 getStyle
    作用域
  • 原文地址:https://www.cnblogs.com/CoderHong/p/9121725.html
Copyright © 2011-2022 走看看