【发布时间】:2014-06-09 16:22:45
【问题描述】:
class Container{
private:
int num_;
public:
Container(): num_(1)
{};
void add(Container other){
num_+=other.num_;
}
int get_num(){
return num_;
}
void set_num(int n){
num_=n;
}
};
在上面的例子中 other.num_ 是可访问的...为什么?不应该因为private修饰符而无法访问吗?
【问题讨论】:
-
不,类可以访问自己的私有成员。
-
因为你是从容器类访问它
-
因为在 C++ 中,封装是针对每个类,而不是针对每个对象。这意味着任何 Container 类型的对象都可以访问私有成员,无论它们是否在不同的对象中。