完成特殊成员函数
#include <iostream>using namespace std;class Person
{string name;int *age;
public://构造,析构,拷贝构造,拷贝赋值Person():age(new int ){}Person(int *age,string name):name(name),age(new int (*(age))){}~Person(){delete age;}Person(const Person& other):name(other.name),age(new int (*(other.age))){}Person& operator=(const Person& other){*(this->age)=*(other.age);this->name = other.name;return *this;}};class Stu:public Person
{const double score;
public://构造,析构,拷贝构造,拷贝赋值Stu():score(12){}Stu(double score):score(score){}Stu(double score,string name,int *age):Person(age,name),score(score){}~Stu(){}Stu(const Stu& other):Person(other),score(other.score){}Stu& operator=(const Stu& other){Person::operator=(other);return *this;}};
定义一个全局变量int monster = 10000;定义一个英雄类Hero,受保护的属性,string name,int hp,int attck,写一个无参构造、有参构造,类中有虚函数:void Atk(){monster-=0;};法师类,公有继承自英雄类,私有属性:int ap_ack;写有参,重写父类中的虚函数,射手类,公有继承自英雄类,私有属性:int ad_ack;写有参构造,重写父类中的虚函数,主函数内完成调用,判断怪物何时被杀死。
#include <iostream>using namespace std;
int monster = 10000;
class Hero
{
protected:string name;int hp;int attck;
public:Hero(){}Hero(string name,int hp,int attck):name(name),hp(hp),attck(attck){}virtual void Atk(){monster-=0;}
};
class Master:public Hero
{int ap_ack;
public:Master(int ap_ack,string name,int hp,int attck):Hero(name,hp,attck),ap_ack(ap_ack){}void Atk(){monster-=ap_ack+attck;}
};
class Shooter:public Hero
{int ad_ack;
public:Shooter(int ad_ack,string name,int hp,int attck):Hero(name,hp,attck),ad_ack(ad_ack){}void Atk(){monster-=ad_ack+attck;}
};
int main()
{Shooter s1(500,"Draven",1500,500);Master m1(800,"ali",1000,100);int i=0;while(monster>=0){s1.Atk();if(monster<=0){cout << "monster还剩" << monster <<endl;break;}m1.Atk();cout << "monster还剩" << monster <<endl;i++;}cout << "time is taken "<< i << " s " << endl;return 0;
}