C++中巧用#define訪問類的私有成員
我們知道,類的私有成員在類的外部是不能被訪問的。例如有下面的這個簡單的類:
| class ClxECS { private: int iPrivate; }; |
那么下面的這個函數是不能通過編譯的:
void ECS_test() cout << lx.iPrivate << endl; |
但是,我們并不是沒有辦法來訪問類的私有成員。
其實,方法很簡單,只要在類的聲明前面加上如下一行代碼就行了:
| #define private public |
同樣的,這個方法對保護成員也適用:
| #define protected public |
但是,這是一個非正規的手段,它將破壞類的所有封裝性。而C++中的#define的存在也是為了跟C兼容。所以只有在非常特殊的情況下,才會用這種非正規方法訪問類的私有或保護成員。
posted on 2007-09-05 00:08 旅途 閱讀(99) 評論(0) 編輯 收藏 引用 所屬分類: C/C++

