友元的使用
全局函数做友元
#include<iostream>
using namespace std;
#include<string>
class Building {
friend void goodGay(Building &building);
public :
Building() {
this->sittingRoom = "sittingRoom";
this->BedRoom = "bedRoom";
}
public:
string sittingRoom;
private:
string BedRoom;
};
void goodGay(Building &building) {
cout << building.sittingRoom << endl;
cout << building.BedRoom << endl;
}
void test01() {
}
int main() {
Building building;
goodGay(building);
return 0;
}
类做友元
#include<iostream>
using namespace std;
#include<string>
class Building;
class GoodGay {
public :
GoodGay();
void visit();
Building *building;
};
class Building {
friend class GoodGay;
public:
Building();
public:
string sittingRoom;
private:
string bedRoom;
};
Building::Building() {
sittingRoom = "sittingRoom";
bedRoom = "bedRoom";
}
GoodGay::GoodGay() {
building = new Building();
}
void GoodGay::visit() {
cout << "GoodGay visiting sittingRoom:" << building->sittingRoom << endl;
cout << "GoodGay visiting bedRoom:" << building->bedRoom << endl;
}
int main(){
GoodGay goodGay;
goodGay.visit();
return 0;
}
成员函数做友元
#include<iostream>
#include<string>
using namespace std;
class Building;
class GoodGay {
public :
GoodGay();
void visit();
void noVisit();
Building *building;
};
class Building {
friend void GoodGay::visit();
public:
Building();
public:
string sittingRoom;
private:
string bedRoom;
};
Building::Building() {
sittingRoom = "sittingRoom";
bedRoom = "bedRoom";
}
GoodGay::GoodGay() {
building = new Building();
}
void GoodGay::visit() {
cout << "GoodGay visiting sittingRoom:" << building->sittingRoom << endl;
cout << "GoodGay visiting bedRoom:" << building->bedRoom << endl;
}
void GoodGay::noVisit() {
cout << "GoodGay visiting sittingRoom:" << building->sittingRoom << endl;
}
int main() {
GoodGay goodGay;
goodGay.visit();
goodGay.noVisit();
return 0;
}