C++纯虚函数、抽象类和接口类
1.纯虚函数:纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在虚函数原型后加“=0”
例如:virtual void takeoff() = 0;
2.抽象类:含有纯虚函数的类叫做抽象类(抽象类不能实例化对象)。
3.接口类:一般只含有纯虚函数的类(故接口类属于抽象类)。接口类更多的用来表达一种能力或协议。接口类是只提供方法声明,而自身不提供方法定义的抽象类。接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成。
4.实例
Flyable.h
//接口类
#ifndef FLYABLE_H
#define FLYABLE_H
class Flyable
{
public:
virtual void takeoff() = 0;
virtual void land() = 0;
};
#endif`
Plane.h
#ifndef PLANE_H
#define PLANE_H
#include "Flyable.h"
#include<string>
#include<iostream>
using namespace std;
class Plane:public Flyable
{
public:
Plane(string code);
virtual~Plane();
virtual void takeoff();
virtual void land();
void printCode();
protected:
string m_strCode;
};
#endif
Plane.cpp
#include"