#include<iostream>
#include<string>
using namespace std;
class Building;
class Person
{
public:
Person();
void visit01()
{
cout << "参观的是:" << house->m_Livingroom << endl;
}
void visit02();
private:
Building *house;
};
class Building
{
friend void Person::visit02();
public:
string m_Livingroom = "客厅";
private:
string m_Bedroom = "卧室";
};
Person::Person()
{
house = new Building;
}
void Person::visit02()
{
cout << "参观的是:" << house->m_Bedroom << endl;
}
void test01()
{
Person Tony;
Tony.visit01();
Tony.visit02();
}
int main()
{
test01();
return 0;
}
问题二:
#include<iostream>
#include<string>
using namespace std;
class Building;
class Person
{
public:
Person();
void visit01();
void visit02();
private:
Building *house;
house = new Building;
};
class Building
{
friend void Person::visit02();
public:
string m_Livingroom = "客厅";
private:
string m_Bedroom = "卧室";
};
Person::Person()
{
}
void Person::visit01()
{
cout << "Tony参观的是:" << house->m_Livingroom << endl;
}
void Person::visit02()
{
cout << "Tony参观的是:" << house->m_Bedroom << endl;
}
void test01()
{
Person Tony;
Tony.visit01();
Tony.visit02();
}
int main()
{
test01();
return 0;
}
为什么这里的new语句在13,14行使用就报错,在Person的构造函数中使用就没问题