// 全局函数做友元函数
#include <iostream>
#include <string>
using namespace std;
class Building {
// 让全局的好基友函数 变成我的好朋友 友元函数;
friend void goodGay(Building* building);
public:
Building() {
cout << "无参构造函数 调用" << endl;
this->sittingRoom = "sittingRoom";
this->bedRoom = "bedRoom";
}
~Building() {
cout << "析构函数 调用" << endl;
}
public:
string sittingRoom;
private:
string bedRoom;
};
void goodGay(Building* building) {
cout << "好基友正在访问 --- " << building->sittingRoom << endl;
cout << "好基友正在访问 --- " << building->bedRoom << endl; // 通过变成友元函数, 来做私有变量;
}
void test01() {
Building* building = new Building;
goodGay(building);
}
int main() {
test01();
return EXIT_SUCCESS;
}
// 类做友元类
#include <iostream>
#include <string>
using namespace std;
class Building {
// 类作为友元类;
friend class GoodDay;
public:
Building() {
}
string sittingRoom = "sittingRoom";
private:
string bedRoom = "bedRoom";
};
class GoodDay {
public:
GoodDay();
void visit();
private:
Building* building;
};
GoodDay::GoodDay() {
this->building = new Building;
}
void GoodDay::visit(){
cout << "sitting room: " << this->building->sittingRoom << endl;
cout << "bed room: " << this->building->bedRoom << endl;
}
void test01() {
GoodDay goodday;
goodday.visit();
}
int main() {
test01();
return EXIT_SUCCESS;
}