类
-
类的声明Enemy.h
//一般来说函数设为公有,数据设为私有
class Enemy
{
public://公开
string name;
void Attack();//函数声明
void TakeDamage();//函数声明
Enemy(int hp, int damage);//声明有参构造函数
Enemy();//手动声明无参构造函数
private://私有
int hp;
int Damage;
};
-
类的实现Enemy.cpp
void Enemy::Attack() {
cout << "名字:"<< name << endl;
cout << "播放攻击动作" << endl;
cout << "播放攻击特效" << endl;
cout << "让被攻击的人受伤" << endl;
cout << "当前HP:" <<hp<< endl;
}
void Enemy::TakeDamage() {
cout << "播放受伤动作" << endl;
cout << "播放受伤特效" << endl;
cout << "扣除自身hp" << endl;
cout << "当前HP:" << hp-Damage << endl;
}
Enemy::Enemy(int hp, int damage) //有参构造函数的实现
{
HP = hp;
Damage = damage;
}
Enemy::Enemy() //无参构造函数的实现
{
HP = 0;
Damage = 0;
}
-
类的使用 demo01.cpp
int main() {
//我们使用自己定义的类声明的变量,可以称之为对象
Enemy enemy = Enemy(200,100); //使用有参的构造函数进行初始化enemy
enemy.name = "丁大嘴";
enemy.Attack();
enemy.TakeDamage();
Enemy enemy2 = Enemy(); //使用无参的构造函数进行初始化enemy
enemy2.name = "大嘴";
enemy2.Attack();
enemy2.TakeDamage();
}
-
类的继承
子类的声明WalkEnemy.h
class WalkEnemy :public Enemy //继承自Enemy
{
public:
WalkEnemy(int hp,int damage); //子类的构造函数
};
子类的调用父类的构造函数进行初始化WalkEnemy.cpp
WalkEnemy::WalkEnemy(int hp,int damage):Enemy(hp,damage){}
子类的初始化及使用 demo01.cpp
WalkEnemy walkenemy = WalkEnemy(200,105);
walkenemy.Attack();
walkenemy.TakeDamage();