2
代碼描述了實現回調函數的兩個類,該函數在模板中傳遞的類參數中必須是成員函數。 下面的代碼我附加了相關的相關錯誤消息。C++中的回調函數
A.H
template <class CLASSNAME>
class a
{
public:
typedef void (CLASSNAME::*myFunction)();
a(CLASSNAME& myObject, myFunction callback) :
m_myObject(myObject)
{
m_myFuntion = callback;
}
void update()
{
(m_myObject).*(m_myFuntion);
}
myFunction m_myFuntion;
CLASSNAME& m_myObject;
};
dummy.h
#include <stdio.h>
class dummy
{
public:
dummy()
{
var = 14;
}
void func()
{
printf("func!!");
}
int var;
};
的main.cpp
#include <cstdlib>
#include "a.h"
#include "dummy.h"
void main()
{
dummy dum;
a<dummy> avar(dum, &(dummy::func));
avar.update();
system("pause");
}
我想實現的回調函數,我也得到了以下錯誤消息:
C2298 missing call to bound pointer to member function
的問題是什麼?
這可能已經在這裏找到答案:http://stackoverflow.com/questions/16778498/c-pointer-to-member-function – GreatAndPowerfulOz