作业声明一个英雄类,成员属性:英雄名字、血量,定义成员函数攻击水晶(纯虚函数)声明一个坦克类,继承自英雄类,新增属性:攻击力,重写攻击水晶函数,水晶下降血量为基础伤害(自定义)+坦克英雄攻击力声明

该代码示例展示了C++中如何定义类来创建不同类型的英雄,如Stu1、Stu2和Stu3,每个类都有不同的属性和行为。Stu2和Stu3从Stu1继承并扩展功能,分别表示具有攻击力和惩戒伤害的英雄。fun函数接受一个Stu1对象引用,调用show方法展示英雄对水晶的攻击效果。在main函数中,创建了两个英雄实例并演示了他们的攻击行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码:

#include <iostream>

using namespace std;
int blood=30000;
class  Stu1
{
protected:
    string name;  //英雄
    int hp;   //血量

public:
    Stu1(){}    //无参构造
    Stu1(string n ,int h): name(n) , hp(h){}    //有参构造
    virtual ~Stu1(){}   //析构函数
    virtual void show()=0;
};
class Stu2:public Stu1
{
protected:
    int atk;
public:
    Stu2(){}
    Stu2(string n,int h,int a):Stu1(n,h),atk(a){}
    virtual ~Stu2(){}
    void show()
    {
        blood=blood-50-atk;
        cout<<"英雄名字:"<<name<<endl;
        cout<<"血量:"<<hp<<endl;
        cout<<"攻击力:"<<atk<<endl;
        cout<<"对水晶造成上海:"<<50+atk<<endl;
        cout<<"水晶剩余血量为:"<<blood<<endl;
    }

};
class Stu3 : public Stu1
{
protected:
    int pun;    //惩戒伤害
public:
    Stu3() {}
    Stu3(string n,int h,int p):Stu1(n,h),pun(p) {}
    virtual ~Stu3() {}

    void show()
    {
        blood  = blood - 220 - pun;
        cout<<"登场英雄:"<<name<<endl;
        cout<<"基础伤害:220"<<endl;
        cout<<"惩戒伤害:"<<pun<<endl;
        cout<<"对水晶伤害为:"<<220+pun<<endl;
        cout<<"水晶剩余血量:"<<blood<<endl;
    }
};

void fun(Stu1 &h)
{
    h.show();
}

int main()
{
    Stu2 t("疾风剑豪",8760,1100);

    Stu3 a("无极剑圣易",4620,900);

    fun(t);
    cout<<"***************************************"<<endl;
    fun(a);


    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值