#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++ 多态小案例
最新推荐文章于 2025-10-28 07:30:00 发布
本文深入探讨了C++中的动态多态概念,通过具体的代码示例,展示了如何使用虚函数实现不同类之间的动态行为选择。文章重点讲解了实现动态多态的三个必要条件,并通过英雄飞机与敌机的战斗场景,演示了多态性的实际应用。
2185

被折叠的 条评论
为什么被折叠?



