2011-07-22 62 views
0
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

這樣做的目的是什麼? –

回答

1

我的觀點是,使用「C」編碼技術與「C++」導向的對象編程非常髒。

如果您需要訪問某個班級的成員,請將其標記爲公開。

_tmain函數通過方法指針訪問3個方法。

+0

這是一個面試問題,我從互聯網上下載。因爲我想找一份關於C++的工作。 –

+0

這應該對你有所幫助:http://www.newty.de/fpt/index.html –

相關問題