这个类外声明的无参构造函数写的build= new building和类内写的build*building的意义是什么是定义一个类内成员类吗有点不懂new的含义


#include <iostream>
#include <string>
using namespace std;
class building;
class goodgay
{
    
public:
    goodgay();
    void visist();
    building*build;//这一句
};
class building
{
    friend void goodgay::visist();
public:
    building();
    string sittingroom;
private:
    string bedroom;
};
building::building()
{
    sittingroom = "看客厅";
    bedroom = "卧室";
}
goodgay::goodgay()
{
    build = new building;//这一句
}
 void goodgay::visist()
{
     cout << build->bedroom;
}
 void test()
 {
     goodgay gg;
     gg.visist();
 }
 int main()
 {
     test();
     return 0;