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. 如果僅存在私有函數,則訪問基類中的私有數據類型
- 4. 從私有函數訪問類成員
- 5. 函數如何訪問類對象的私有數據成員?
- 6. 如何從C++中的朋友函數訪問私有函數?
- 7. 訪問私有函數?
- 8. 如何從C++的主函數訪問類中的私有構造函數?
- 9. 我如何訪問一個類的私有構造函數?
- 10. 如何訪問c#中另一個類中的類的私有函數?
- 11. 如何在派生類中訪問基類的私有數據成員?
- 12. 訪問子類中的基類函數
- 13. 訪問私有類中的數組
- 14. C++派生的基類朋友函數訪問私人家長?
- 15. 如何訪問類中的私有數據成員的方法/函數
- 16. Java:訪問帶有類型參數的私有構造函數
- 17. 如何訪問基類中的派生類純虛擬實現?
- 18. (C++)從私有基類訪問私有成員變量
- 19. 用私有基本函數覆蓋公共虛函數?
- 20. 基類的私有數據成員如何被派生類訪問?
- 21. 如何訪問Golang中另一個包的私有函數?
- 22. 私人虛函數在派生類中
- 23. 使用類成員函數訪問類內的私有結構
- 24. 在基類的非虛函數中調用基類的虛函數
- 25. C++:如何從另一個類的函數訪問類的私有變量
- 26. 類有虛函數和可訪問的非虛擬析構函數
- 27. 如何從基類訪問私有陰影常量?
- 28. 如何訪問C++私有類中的數組?
- 29. 基類虛析構函數訪問衝突
- 30. 如何訪問蔚藍虛擬網絡中的私有虛擬機
這樣做的目的是什麼? –