成员函数
-
成员变量、成员函数
-
inline成员函数
-
this指针
成员变量、成员函数
class ROLE
{
private:
int hpRecover;->成员变量
void Init()-→成员函数
{
hpRecover=3;
}
public:
int hp; ->>成员变量
int damage;->→成员变量
void Act(ROLE& role)->>成员函数
{
role.hp-=damage;
}
};
class P
{};
cout<<sizeof(P);//1
//一个空的类仍然占一个字节的内存
inline成员函数
推荐写在头文件里
class Role
{
private:
int hpRecover;
void Init();
int hp;
public:
int damage;
void Act(Role& role);
inline int GetHp()
{
return hp;
}
}
this指针
class ROLE
{
private:
int lv;
int hp;
int hpRecover;
int damage;
void Init();
public:
void Act(ROLE& role);
int GetHPO;
};
inline int GetHP()
{
return this->hp;
}
在C++中,this指针是一个指向当前对象的指针,可以在成员函数中使用。
每个对象都有自己独立的this指针,可以用来指向该对象本身。
this指针通常用于以下几个方面:
-
访问对象的成员变量和成员函数:由于成员函数可以访问对象的成员变量和成员函数,而this指针指向当前对象,因此可以使用this指针来访问对象的成员变量和成员函数。
-
在函数参数和成员变量名相同的情况下,用于区分成员变量和局部变量:当函数参数和成员变量名相同时,可以使用this指针来区分它们,从而避免命名冲突。
-
在一个类的成员函数中返回对象本身:由于this指针指向当前对象,因此可以在成员函数中使用return this语句来返回对象本身。
需要注意的是,this指针是一个隐含的指针,通常不需要显式地使用。在大多数情况下,编译器会自动为成员函数添加this指针。
如果需要显式地使用this指针,可以在成员函数中使用this关键字来获取当前对象的地址。
this指针的类型是指向当前对象的==常量指针==,因此不能通过this指针来修改对象的值。
class Role
{
public:
int hp;
int lv;
int damage;
Role& SetHp(int newHp);
Role& SetLv(int newLv);
Role& SetDamage(int newDamage);
void Act(Role& role);
};
Role& Role::SetHp(int newHp)
{
hp = newHp;
return *this; //this指向当前Role
}
Role& Role::SetLv(int newLv)
{
lv = newLv;
return *this;
}
Role& Role::SetDamage(int newDamage)
{
damage = newDamage;
return *this;
}
void Role::Act(Role& role)
{
role.hp -= damage;
}
int main()
{
Role user;
Role monster;
user.SetLv(100).SetDamage(200).SetHp(500).Act(monster);
//相当于
//uesr.SetLv(100);
//user.SetDamage(200);
//user.SetHp(500);
//user.Act(monster);
}