class BaseClass
{
virtual void g()
{
cout<<"BaseClass:g()"<<endl;
}
private:
virtual void f()
{
cout<<"BaseClass:f()"<<endl;
}
};
class DeriveClass:public BaseClass
{
virtual void g()
{
cout<<"DeriveClass:g()"<<endl;
}
private:
virtual void h()
{
cout<<"DeriveClass:h()"<<endl;
}
};
typedef void (*Fun)(void) ;
int _tmain(int argc, _TCHAR* argv[])
{
DeriveClass b;
Fun pFun;
for(int i = 0; i<3; ++i)//why the variable is 3?
{
pFun = (Fun)*((int*)*(int*)(&b)+i);// I don't know this?
pFun();
}
system("pause");
return 0;
}
0
A
回答
0
這是一個問題,看看你是否瞭解VTABLE。
本教程http://www.learncpp.com/cpp-tutorial/125-the-virtual-table/不僅使用此示例代碼,但解釋了答案。
1
我的觀點是,使用「C」編碼技術與「C++」導向的對象編程非常髒。
如果您需要訪問某個班級的成員,請將其標記爲公開。
_tmain函數通過方法指針訪問3個方法。
+0
這是一個面試問題,我從互聯網上下載。因爲我想找一份關於C++的工作。 –
+0
這應該對你有所幫助:http://www.newty.de/fpt/index.html –
相關問題
- 1. 在派生類中實現虛函數時訪問基類私有成員
- 2. 如果僅存在私有函數,則訪問基類中的私有數據類型
- 3. 如何從C++中的朋友函數訪問私有函數?
- 4. 如何從C++的主函數訪問類中的私有構造函數?
- 5. 我如何訪問一個類的私有構造函數?
- 6. 訪問子類中的基類函數
- 7. 如何在派生類中訪問基類的私有數據成員?
- 8. C++派生的基類朋友函數訪問私人家長?
- 9. Java:訪問帶有類型參數的私有構造函數
- 10. 用私有基本函數覆蓋公共虛函數?
- 11. 基類的私有數據成員如何被派生類訪問?
- 12. 如何訪問Golang中另一個包的私有函數?
- 13. 在基類的非虛函數中調用基類的虛函數
- 14. 使用類成員函數訪問類內的私有結構
- 15. 類有虛函數和可訪問的非虛擬析構函數
- 16. 如何從基類訪問私有陰影常量?
- 17. 基類虛析構函數訪問衝突
- 18. C++ - error:成員訪問到基類虛函數中的不完整類型
- 19. 如何訪問蔚藍虛擬網絡中的私有虛擬機
- 20. jQuery-ui:我如何從私有函數中訪問選項
- 21. 虛函數 - 基類指針
- 22. 從派生類訪問基類函數
- 23. 派生類可以訪問其基類的私有成員
- 24. 可以訪問某個類的私有函數?
- 25. 構造函數不能訪問自己類的私有成員
- 26. 修改函數以訪問類之外的私有變量
- 27. 防止朋友函數訪問某個類的私有成員
- 28. 如何訪問子類中的函數?
- 29. 訪問私有類中的成員
- 30. 訪問類中的私有屬性
這樣做的目的是什麼? –