#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 Fashi:public Hero
{
int ap_ack;
public:
Fashi(int ap_ack,string name,int hp,int attck):Hero(name,hp,attck),ap_ack(ap_ack){}
void Atk()
{
monster-=ap_ack;
}
};
class Sheshou:public Hero
{
int ad_ack;
public:
Sheshou(int ad_ack,string name,int hp,int attck):Hero(name,hp,attck),ad_ack(ad_ack){}
void Atk()
{
monster-=ad_ack;
}
};
#include <iostream>
using namespace std;
class Person
{
string name;
int* age;
public:
Person():name("lisi"),age(new int(20)){}
Person(string name,int *age):name(name),age(new int (*(age))){}
~Person()
{
delete age;
}
Person (const Person &other):name(other.name),age(new int (*(other.age)))
{
cout <<"P的拷贝构造函数:" <<endl;
}
Person &operator=(const Person &other)
{
if(this!=&other)
{
*(this->age)=*(other.age);
this->name=other.name;
}
cout <<"P的拷贝赋值函数:" <<endl;
return *this;
}
};
class Stu:public Person
{
const double score;
public:
Stu():score(99){}
Stu(double score):score(score){}
Stu(double score,string name,int *age):Person(name,age),score(score){}
Stu(const Stu &other):Person(other),score(other.score){}
Stu &operator=(const Stu &other)
{
if(this!=&other)
{
Person::operator=(other);
}
return *this;
}
};