//4.4.3 成员函数做友元 #include class Building; class GoodGay { public: GoodGay(); void visit(); //让visit函数可以访问Building中私有成员 void visit2(); //让visit2函数不可以访问Building中私有成员 Building* building; }; class Building { //告诉编译器 GoodGay类下的visit成员函数作为本类的好朋友,可以访问私有成员 friend void GoodGay::visit(); public: Building(); public: std::string m_SittingRoom; //客厅 private: std::string m_BedRoom; //卧室 }; //类外实现成员函数 Building::Building() { this->m_BedRoom = "卧室"; this->m_SittingRoom = "客厅"; } GoodGay::GoodGay() { building = new Building; } void GoodGay::visit() { std::cout << "visit函数正在访问:" << building->m_SittingRoom << std::endl; std::cout << "visit函数正在访问:" << building->m_BedRoom << std::endl; } void GoodGay::visit2() { std::cout << "visit2函数正在访问:" << building->m_SittingRoom << std::endl; //std::cout << "visit2函数正在访问:" << building->m_BedRoom << std::endl; } void test01() { GoodGay gg; gg.visit(); gg.visit2(); } int main() { test01(); system("pause"); return 0; }