在C ++中,当我遇到以下情况时会发生什么
class House
{
public:
House();
~House();
private:
int* m_peopleInside;
friend class Room;
};
然后在House的构造函数中设置
m_peopleInside = new int[5];
m_peopleInside[4] = 2;
和
class Room
{
public:
Room();
~Room();
Update();
private:
int* m_peopleInside;
};
然后在Room.Update()中,我使用m_peopleInside这样的东西。
&m_peopleInside[4];
据我了解,朋友类将允许Room类访问House类的私有成员。那么将使用哪个m_peopleInside?
我应该补充一点,在这种情况下,m_peopleInside被用作数组。
这是一个实例变量。因此,需要实例来对其进行操作。如果未提供实例,则该实例与相同this->m_peopleInside
,这意味着它引用了在其上调用该函数的实例。因此,例如,如果这是您的功能:
void Room::Update() {
// these two are the same, they null the member of the Room object
m_peopleInside = nullptr;
this->m_peopleInside = nullptr;
House h;
// should be pretty obvious what this does
h.m_peopleInside = nullptr;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句