实现多态的三个条件
1、要有继承
2、要有虚函数重写
3、用父类指针(父类引用)指向子类对象
#include<iostream>
using namespace std;
//herofignter advherofighter enemyfighter
class herofignter
{
public:
int virtual power()
{
return 10;
}
};
class advherofignter:public herofignter
{
public:
int virtual power()
{
return 20;
}
};
class enemyfighter
{
public:
int attack()
{
return 15;
}
};
void objectplay(herofignter *p,enemyfighter *p1)
{
if (p->power()> p1->attack())
{
cout << "英雄胜利!!!!!!"<< endl;
}
else
{
cout <<"敌人胜利。。。。" << endl;
}
}
//实现多态的三个条件
//C语言 间接赋值 是指针存在的最大意义
//C语言特有的现象1)定义两个变量 2)建立关联 3)*p在被调用函数中去间接地修改实参的值
//实现多态的三个条件
//1、要有继承
//2、要有虚函数重写
//3、用父类指针(父类引用)指向子类对象
void main()
{
herofignter hf;
advherofignter af;
enemyfighter ef;
objectplay(&hf, &ef);
objectplay(&af, &ef);
system("pause");
}