我想将函数存储为类成员,并在类内部调用它?很像一个回调函数。我的类(class)绘制了一个文档,但是每个文档都必须以不同的方式绘制。因此,我想将一个函数(在类外部编写)分配给该类的一个成员,然后在我要绘制文档时调用它。
此功能主要负责根据每个特定文档转换对象。
这是我的课:
class CDocument
{
public:
CDocument();
~CDocument();
void *TransFunc();
}
void Transform()
{
}
int main()
CDocument* Doc = new CDocument();
Doc->TransFunc = Transform();
}
我知道这可能是一个简单的问题,但是我无法通过谷歌搜索或搜索找到答案。
最佳答案
我认为,这就是您可能想要的。如有疑问,请与我联系。
class CDocument
{
public:
CDocument():myTransFunc(NULL){}
~CDocument();
typedef void (*TransFunc)(); // Defines a function pointer type pointing to a void function which doesn't take any parameter.
TransFunc myTransFunc; // Actually defines a member variable of this type.
void drawSomething()
{
if(myTransFunc)
(*myTransFunc)(); // Uses the member variable to call a supplied function.
}
};
void Transform()
{
}
int main()
{
CDocument* Doc = new CDocument();
Doc->myTransFunc = Transform; // Assigns the member function pointer to an actual function.
}