我們知道,類的私有成員在類的外部是不能被訪問的。
例如有下面的這個簡單的類:
class ClxECS { private: int iPrivate; }; |
那么下面的這個函數(shù)是不能通過編譯的:
void ECS_test() { ClxECS lx; lx.iPrivate = 13; cout << lx.iPrivate << endl; } |
但是,我們并不是沒有辦法來訪問類的私有成員。
其實,方法很簡單,只要在類的聲明前面加上如下一行代碼就行了:
同樣的,這個方法對保護成員也適用:
但是,這是一個非正規(guī)的手段,它將破壞類的所有封裝性。而C++中的#define的存在也是為了跟C兼容。所以只有在非常特殊的情況下,才會用這種非正規(guī)方法訪問類的私有或保護成員。