定义了两个类
在一个类中声明了另一个类中的成员函数为友元,
但是在这个友元成员函数中还是不能调用另一个类中的私有属性
代码如下:
class goodGUY
{
public:
Building* building;
goodGUY()
{
building = new Building;
}
void vist1()
{
cout << building->keting << endl;
cout << building->woshi << endl;
}
};
class Building
{
friend void goodGUY::vist1();
public:
string keting;
private:
string woshi;
public:
Building()
{
keting = "客厅";
woshi = "卧室";
}
};
但是当把visit1函数在类外定义时,就可以访问到私有属性,
代码如下:
class goodGUY
{
public:
Building* building;
goodGUY()
{
building = new Building;
}
void vist1();
};
class Building
{
friend void goodGUY::vist1();
public:
string keting;
private:
string woshi;
public:
Building()
{
keting = "客厅";
woshi = "卧室";
}
};
void goodGUY:: vist1()
{
cout << building->keting << endl;
cout << building->woshi << endl;
}
请问具体原因是什么?