C++ Friend类
示例
整个班级都可以宣布为朋友。Friend类声明是指朋友的任何成员都可以访问该声明类的私有成员和受保护成员:
class Accesser {
public:
void private_accesser1();
void private_accesser2();
};
class PrivateHolder {
public:
PrivateHolder(int val) : private_value(val) {}
friend class Accesser;
private:
int private_value;
};
void Accesser::private_accesser1() {
PrivateHolder ph(10);
//好。
std::cout <<ph.private_value<< std::endl;
}
void Accesser::private_accesser2() {
PrivateHolder ph(10);
//好。
std::cout <<ph.private_value+ 1 << std::endl;
}朋友类声明不是反身的。如果类需要双向双向私有访问,则它们都需要朋友声明。
class Accesser {
public:
void private_accesser1();
void private_accesser2();
private:
int private_value = 0;
};
class PrivateHolder {
public:
PrivateHolder(int val) : private_value(val) {}
//Accesser是PrivateHolder的朋友
friend class Accesser;
void reverse_accesse() {
//但是PrivateHolder无法访问Accesser的成员。
Accesser a;
std::cout << a.private_value;
}
private:
int private_value;
};
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西