我剛注意到一些我從未意識到的東西。事實證明,這個類是在C#中有效:可以從同一類別的其他實例訪問私人成員
class Foo
{
private string contents;
public Foo(string str) {
contents = str;
}
public void set(Foo other)
{
contents = other.contents;
}
}
同一類等不同情況下可以互相訪問的私有成員。直到現在,我認爲對象的私有成員只能被該對象訪問,而不能被同一類的其他實例訪問。發現這一點有點令人驚訝。
在所有常見的面向對象的語言中都是這種情況嗎?這對我來說並不直觀。
事實證明,有人已經問過一個非常類似的問題:http://stackoverflow.com/questions/346127/access-private-member-variable-of-the-class-using-its-object-instance?rq= 1。儘管如此,該答案的答案並沒有給出這種設計選擇的授權理由。這是否僅僅因爲以不同的方式進行效率低下/不可能? – Oliver