使用了未定义类型“GoodGay” 成员函数友元

#include<iostream>
using namespace std;
#include<string>
class GoodGay;
class building {
    friend void GoodGay::visit01();
public:

    building();
    string m_SettingRoom ;
private:
    string m_BedRoom;
};
class GoodGay {
public:
    building*Pbuilding;//指针
    GoodGay();
    void visit01();
    void visit02();
private:
};
//类外的声名
void GoodGay::visit01(){//可以访问私有权限
    cout << "GoodGay类正在访问" << Pbuilding->m_SettingRoom << endl;
}
void GoodGay::visit02() {//不可以访问私有权限

}
building::building() {
    m_BedRoom = "卧室";
    m_SettingRoom = "客厅";
}
GoodGay::GoodGay() {
    Pbuilding = new building;
}
void test01() {
    GoodGay gg;
    gg.visit01();
    gg.visit02();
    
}
int main() {
    test01();
    system("pause");
    return 0;
}

你把GoodGay定义放前面