【发布时间】:2016-02-07 13:03:17
【问题描述】:
我是 C++ 新手,我需要在不同类中的方法中读取类的私有类成员,例如:
class a{
private:
int x;
}
class b{
void foo();
}
void b::foo(){
//here I want to read from x that's in a
}
我是否必须在class a 中设置一个函数,例如int readx(){return x);) 或a readclass(){return *this);}?还有其他方法吗?
【问题讨论】:
-
你可以使用可以访问x的好友功能。
-
你应该认为它可能被宣布为私有是有原因的。
-
@NeilKirk:对,例如如果类的设计者考虑到以后能够扩展它以用于多线程环境,其中未经审计的状态访问是一个游戏杀手。
-
@NeilKirk 我在几个地方读到所有类变量都应该是私有的。