中調用一個函數(由靜態指針引用)。 最近我面臨挑戰。不能說這是一個關鍵問題,而只是一個有趣的事情。 有SRC代碼:需要從靜態成員
class Data {
typedef void (Object::*CallBack)(void);
public:
Data() : m_callBack(NULL) {}
void setCallBack(CallBack ptr)
{
m_callBack = ptr;
}
void start()
{
Aux::someAction();
}
private:
static CallBack m_callBack;
class Aux{
public:
static someAction()
{
if(m_callBack)
{
// How to call function for this reference ? - m_callBack
}
}
}; // End of 'Aux' class
}; // End of 'Data' class
所以,我知道,我們可以從這樣的指針調用函數:(此 - > * m_callBack)()。但靜態類成員不能訪問'this'指針。當然,我可以用m_callBack指針和call(parent - > * m_callBack)()來存儲父指針。在同樣的情況下,它可能不太好。 所以,我的問題:是否有任何其他方法從靜態類成員調用m_callBack函數。此外,我很有趣 - 如果m_callBack引用靜態或非靜態函數的類成員。
是的。是個好主意。 –