关于#c++类的声明#的问题,请各位专家解答!

#include
#include
using namespace std;

class Building;
class add{
public:
add(){
building=new Building;
}
void visit(){
cout<name<<endl;
cout<age<<endl;
}
~add(){
delete building;
cout<<"正在析构"<<endl;
}
private:
Building*building;
};

class Building{
public:
friend class add;
Building()
{
this->name="std";
this->age=12;
}
public:
string name;
private:
int age;
};
int main(){
add p;
p.visit();
return 0;
}


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

class Building {
public:
    friend class add;
    Building()
    {
        this->name = "std";
        this->age = 12;
    }
public:
    string name;
private:
    int age;
};
class add {
public:
    add() {
        building = new Building;
    }
    void visit() {
        cout << name << endl;
        cout << age << endl;
    }
    ~add() {
        delete building;
        cout << "正在析构" << endl;
    }
private:
    Building* building;
    string name;
    int age;
};
int main() {
    add p;
    p.visit();
    return 0;
}

buliding类有2个对象,name和age,初始化的时候自动赋值”std“和12
add类创建了一个buliding对象,然后进行输出name和age。
最终输出:
std
12