为什么已经建了友元,visit()函数还是不能访问m_bedRoom


#include <iostream>
#include<string>
using namespace std;
class building;
class goodgay {
public:
    goodgay() {
        b = new building;
    }
    building* b;

    void visit() {
        cout << "好基友正在访问:" << b->m_bedRoom << endl;
    };

};
class building {
    friend void goodgay::visit();//建立类内成员函数的友元
public:
    building() {
        m_bedRoom = "卧室";
        m_sittingRoom = "客厅";
    }
    string m_sittingRoom;
private:
    string m_bedRoom;
};

int main()
{
    
}

建议参数传递

#include <iostream>
#include<string>
using namespace std;

class building;

class goodgay {
public:
    goodgay(){}
    void visit(building* pb);
};

class building {
    friend void goodgay::visit(building* pb);//建立类内成员函数的友元
public:
    building() {
        m_bedRoom = "卧室";
        m_sittingRoom = "客厅";
    }
    string m_sittingRoom;
private:
    string m_bedRoom;
};

void goodgay::visit(building* pb)
{
    cout << "好基友正在访问:" << pb->m_bedRoom << endl;
};

int main()
{
    goodgay gay;
    building b;
    gay.visit(&b);
    
    return 0;
}

 
#include <iostream>
#include<string>
using namespace std;
class goodgay;

class building {
    friend void goodgay::visit();//建立类内成员函数的友元
public:
    building() {
        m_bedRoom = "卧室";
        m_sittingRoom = "客厅";
    }
    string m_sittingRoom;
private:
    string m_bedRoom;
};

class goodgay {
public:
    goodgay() {
        b = new building;
    }
    building* b;
 
    void visit() {
        cout << "好基友正在访问:" << b->m_bedRoom << endl;
    };
 
};
int main()
{
    
}