我有以下代碼:使用私人修飾符,爲什麼可以直接訪問其他對象中的成員?
class A
{
private:
int x;
public:
A()
{
x = 90;
}
A(A a1, A a2)
{
a1.x = 10;
a2.x = 20;
}
int getX()
{
return this->x;
}
};
我知道,代碼可能會奇怪,但我不明白爲什麼a1
和a2
可以訪問私有數據成員x
?
'私人'純粹在課堂上的作品。 '保護'[不]](http://stackoverflow.com/questions/3247671/accessing-protected-members-in-a-derived-class-c) – MSalters
@ MSalters:當然可以。類的成員仍然可以更好地訪問該類類型的其他對象,包括訪問基類子對象(代碼所在的類類型的其他對象)中受保護成員的能力。 –
C++中的訪問說明符管理對_names_的訪問,而不是對象。如果你能找到合法的方式來引用它們,實際上可以訪問不同類別的私人成員。 – bames53