多态(C++)
#include <iostream> using namespace std; class HeroFighter { public: virtual int power() { return 10; } }; class EnemyFighter { public: int attack() { return 15; } }; class AdvHeroFighter:public HeroFighter { public: int power() { return 20; } }; class AdvHeroFighter2:public HeroFighter { public: int power() { return 4; } }; void PlayObj(HeroFighter *hf,EnemyFighter *ef) { if(hf->power()>ef->attack()) { printf("主角win\n"); } else { printf("主角挂了、\n"); } }; //多态的思想 //面向对象3大概念 //封装:突破C函数的概念... 用类做函数参数的时候,可以使用对象的属性和对象的方法 //继承:A B代码复用 //多态:可以使用未来。 //多态很重要 //实现多态的三个条件 //C语言 间接赋值 是指针存在的最大意义 //是c语言的特有的现象(1、定义两个变量 2、建立联系 3、*p在被调用函数中去间接修改实参的值) //1要有继承 //2要有虚函数重写 //3、用父类指针(父类引用)指向子类对象 int main() { HeroFighter hf; AdvHeroFighter Advhf; EnemyFighter ef; AdvHeroFighter2 advhf2; PlayObj(&hf,&ef); PlayObj(&Advhf,&ef); PlayObj(&advhf2,&ef); } void mainqq() { HeroFighter hf; AdvHeroFighter Advhf; EnemyFighter ef; if(hf.power()>ef.attack()) { printf("主角win\n"); } else { printf("主角挂了\n"); } if(Advhf.power()>ef.attack()) { printf("adv主角win\n"); } else { printf("adv主角挂了\n"); } cout<<"hello.."<<endl; }
posted on 2016-03-26 11:09 Geography爱好者 阅读(252) 评论(0) 编辑 收藏 举报