class AirConditioner;
class AirRemote {
public:
void set_c(AirConditioner& ac, int c);
};
class AirConditioner {
private:
int c;
friend void AirRemote::set_c(AirConditioner& ac, int c1);
public:
AirConditioner(int c1 = 26);
};
有時後我們只想把私有變量暴露給某個類的某個方法能訪問,比如 只讓(AirConditioner)空調遙控器的設置溫度的方法(set_c) 能訪問 空調(AirConditioner)的私有變量 c,
#include"FriendClassMethod.h"
#include<iostream>
AirConditioner::AirConditioner(int c1) {
this->c = c1;
}
void AirRemote::set_c(AirConditioner& ac, int c1) {
ac.c = c1;
std::cout << "空調設置爲: " << ac.c << "攝氏度\n";
}
三.互爲友元
如果兩個類某些方法互相都要訪問對方成員,這個時候,可以聲明爲友元函數,不是某個它們之間的某個類的成員函數,就普通的友元函數就可以了。參數記得上帶上這兩個類的引用就可以了。或者互相聲明爲對方的友元類。