#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;
}
一個是一個類的實例,一個名爲值私人價值,但爲什麼這種私人價值是可以改變的?這個參數列表是否包含在類的範圍內?爲什麼可以通過類實例更改obj的私有值?
你在你的類中提供該接口。如果你不想讓一個對象改變另一個對象,那麼不提供這個接口會解決你的問題。這個類本身就是訪問私有內容的東西,但不是實例。 – chris