#include <iostream>
using namespace std;
/*多态分为静态多态和动态多态:
*静态多态是编译时发生了多态,多指函数重载和模板实现;
*动态多态是运行时多态,一般通过虚函数实现。
*
*实现动态多态三个条件
*1:要有public继承;
*2:要有虚函数重写;
*3:用父类指针(父类引用)指向子类对象
*/
class HeroPlane
{
public:
virtual int power()
{
return 10;
}
};
class EnemyPlane
{
public:
virtual int power()
{
return 15;
}
};
class advPlane : public HeroPlane
{
public:
int power()
{
return 20;
}
};
class advPlane2 : public HeroPlane
{
public:
int power()
{
return 30;
}
};
void Combat(HeroPlane *hp, EnemyPlane *ep)
{
if (hp->power() > ep->power())
{
cout << "hero win..." << endl;
}
else
{
cout << "hero lose..." << endl;
}
}
int main()
{
HeroPlane h1;
EnemyPlane e;
Combat(&h1, &e);
advPlane h2;
Combat(&h2, &e);
advPlane2 h3;
Combat(&h3, &e);
system("pause");
return 0;
}
c++ 多态小案例
最新推荐文章于 2023-07-11 11:57:41 发布