/*======================================================================
接口类:
仅含有纯虚函数的类称为接口类。
无数据成员
成员函数全部是纯虚函数
接口类更多的表达一种能力或协议
起飞 降落 子类一定要实现这些纯虚函数
/*======================================================================*/
#include <iostream>
#include<string>
using namespace std;
class Flyable
{
public:
Flyable() {}
virtual ~Flyable(){}
virtual void land() = 0;
virtual void takeoff() = 0;
};
class Plane:public Flyable
{
public:
Plane(string name)
{
this->m_strNum = name;
}
~Plane() {}
virtual void takeoff()
{
cout << "飞机起飞" << endl;
}
virtual void land()
{
cout << "飞机降落" << endl;
}
virtual void printcode()
{
cout << "我是飞机"<< m_strNum << endl;
}
protected:
string m_strNum;
};
class FightPlane:public Plane
{
public:
FightPlane(string name):Plane(name)
{
}
virtual ~FightPlane(){}
virtual void takeoff()
{
cout << "战斗机起飞" << endl;
}
virtual void land()
{
cout << "战斗机降落" << endl;
}
virtual void printcode()
{
cout << "我是战斗机" << m_strNum << endl;
}
private:
};
void flyMatch(Flyable *f1, Flyable*f2)
{
f1->takeoff();
f1->land();
f2->takeoff();
f2->land();
}
int main()
{
Flyable *f1=new FightPlane("f1");
FightPlane *f2 = new FightPlane("f2");
flyMatch(f1, f2);
return 0;
}
C++虚函数接口类
最新推荐文章于 2024-07-02 15:55:15 发布