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\n");
}

void Teacher::eat()
{
    printf("Teacher----------eat\n");
}

抽象类的使用

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 抽象类指针指向子类的示例
    Person *p = new Teacher();
    p->eat(); // 通过抽象类指针调用子类示例的方法
    p->run();
    
}

猜你喜欢

转载自www.cnblogs.com/CoderHong/p/9121725.html
今日推荐