c++多态

1、多态: 基类指针可以按照基类的方式来做事,也可以按照派生类的方式来做事,它有多种形态,或者说有多种表现方式,我们将这种现象称为多态(Polymorphism)。
C++中虚函数的唯一用处就是构成多态。有了虚函数,基类指针指向基类对象时就使用基类的成员(包括成员函数和成员变量),指向派生类对象时就使用派生类的成员
2、多态的目的:可以通过基类指针对所有派生类(包括直接派生和间接派生)的成员变量和成员函数进行“全方位”的访问,尤其是成员函数。如果没有多态,我们只能访问成员变量。
3、多态的应用:小项目基本用不到多态和设计模式之类。通过游戏例程举例:假设你正在玩一款军事游戏,敌人突然发动了地面战争,于是你命令陆军、空军及其所有现役装备进入作战状态

#include <iostream>
using namespace std;
//军队
class Troops
{
public:    
  virtual void fight(){ cout<<"Strike back!"<<endl; }
};
//陆军
class army : public Troops
{
    virtual void fight(){ cout<<"army is fighting!"<<endl; }
}
//坦克
class tank :public army
{
    virtual void fight(){ cout<<"tank is fighting!"<<endl; }
}
//装甲机
class suptank :public army
{
    virtual void fight(){ cout<<"suptank is fighting!"<<endl; }
}
//空军
class airforce:public Troops
{
    virtual void fight(){ cout<<"airforce is fighting!"<<endl; }
}
//歼10
class jian_10:public airforce
{
void fight(){cout<<"jian_10 is fighting!"<<endl; }
}
//无人机6号
class wu_10:public airforce
{
void fight(){cout<<"wu_10 is fighting!"<<endl; }
}
//

int main
{
 Troops*p = new   Troops;
 p->fight();
 p = new army;
 p->fight();
 p = new tank;
 p->fight();
 p = new suptank;
 p->fight();
 p = new airforce;
 p->fight();
 p = new jian_10;
 p->fight();
 p = new wu_10;
 p->fight();
return 0;
}

//这样 一个基类指针就可以指向所有的派生类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值