【发布时间】:2012-09-16 14:38:55
【问题描述】:
#include<iostream>
using namespace std;
class A
{
private:
int value;
public:
A(int init):value(init){}
void changevalue(A &a){a.value = 100;}//why a's value can be changed?
void printvalue(){cout << value << endl;}
};
int main(int argc , char *argv[])
{
A a(2);
A b(3);
a.changevalue(b);
b.printvalue();
return 0;
}
a是A类的一个实例,有一个名为value的私有值,但是为什么这个私有值可以改变呢?那是包含在类范围内的参数列表吗?
【问题讨论】:
-
您在课堂上提供了该接口。如果您不希望一个对象更改另一个对象,则不提供接口将解决您的问题。但是,类本身是可以访问私有内容的,而不是实例。
标签: c++