我在尝试访问私有属性时遇到了一种奇怪的行为.请考虑以下代码:
class CLASSE
{
private:
int X;
public:
CLASSE(int x) { X = x; }
int GetX(){ return X; }
void CopyFrom(CLASSE Src){ X = Src.X; }
};
main ()
{
CLASSE A = 123;
CLASSE B = 456;
cout << "A = " << A.GetX() << endl;
cout << "B = " << B.GetX() << endl << endl;
A.CopyFrom (B);
cout << "A = " << A.GetX() << endl;
// cout << "A = " << A.X << endl; *** ERROR: CLASSE::X is private
}
Run Code Online (Sandbox Code Playgroud)
在main()中,尝试正确访问私有属性X会返回错误.我希望在这种情况下相同,允许在方法CopyFrom中访问私有属性X(但我预计会出错).该代码已经在DevC和Codeblocks上进行了测试.
这种行为有解释吗?