成員變量的方法是否可以訪問同一類中的其他私有成員變量?我想到了一個函數成員變量。成員變量在其他成員變量的方法中的隱私
指向私有成員變量的指針是否可以在類的外部解除引用和分配?在另一個成員變量的方法中怎麼樣?
也許像
class A
{
someClass a,b;
A(){a(&b);}
}
成員變量的方法是否可以訪問同一類中的其他私有成員變量?我想到了一個函數成員變量。成員變量在其他成員變量的方法中的隱私
指向私有成員變量的指針是否可以在類的外部解除引用和分配?在另一個成員變量的方法中怎麼樣?
也許像
class A
{
someClass a,b;
A(){a(&b);}
}
每當你調用成員變量的方法時,除非它的類型是被定義的類,否則你將無法訪問私有成員變量。
如果您授予訪問(某種程度上)指向成員變量的指針而不預先確定它是「const」,那麼可以將其解除引用並分配給它。對於其他成員變量的方法,同樣的斷言仍然是正確的。在你的例子中,你正在調用一個方法(通過成員變量「a」),提供一個指向私有成員變量「b」的指針。你在A中訪問這兩個私有成員變量,這是完全正確的C++。
至少如果我正確地理解你的問題,答案是否定的。例如,這樣的代碼:
class outer {
class inner {
int x;
};
void use_x() { inner::x = 0; }
};
...不會編譯。 inner
嵌套在outer
中的事實不是給予outer
的成員函數對inner
的私有部分的任何特殊訪問。
編輯:編輯後,我看不出有什麼異常的話 - A()
是(顯然)的class A
成員還包括私有成員a
和b
。 private
的定義是它可以在類內部進行編碼(即名稱可見),但不能在類外進行編碼。由於A()
在課堂內,因此它們都可以看到a
和b
。
這不是我的意思,雖然這是一個有趣的觀點。看我的編輯。 – user383352 2010-08-16 22:22:48