2014-11-14 24 views
0

我目前通過一些代碼閱讀,並遇到了幾行我不明白。未知的語法void(Type :: m_function)()

首先

void Foo() 
{ 
    (((Type*)parent)->*m_function)(); 
} 

至於我可以告訴他們鑄造父類型,然後調用一個函數取消引用?我不確定以前看過 - > * m_function。

另外我看不到m_function在哪裏聲明?其中包含更多我不明白的語法。它是否聲明瞭一個返回void並且接受一個函數參數的函數?但函數名稱在哪裏?

class Foo() 
{ 
    void (Type::*m_function)(); 
}; 

回答

2

它使用一個指向該函數調用一個成員函數:C++ Call Pointer To Member Function

是,void (Type::*m_function)();聲明類型「以0指定參數和返回void類型的成員函數」

m_function成員