【发布时间】:2012-08-13 20:46:38
【问题描述】:
我试图将一个指向在一个类中定义的函数的指针传递给另一个类。经过大量研究,我相信我的语法是正确的,但我仍然遇到编译器错误。这是一些演示我的问题的代码:
class Base
{
public:
BaseClass();
virtual ~BaseClass();
};
class Derived : public Base
{
public:
// assign strFunction to the function pointer passed in
Derived(string (*funPtr)(int)) : strFunction(funPtr);
~Derived();
private:
// pointer to the function that is passed in
string (*strFunction)(int value);
};
class MainClass
{
public:
MainClass()
{
// allocate a new Derived class and pass it a pointer to myFunction
Base* myClass = new Derived(&MainClass::myFunction);
}
string myFunction(int value)
{
// return a string
}
};
当我尝试编译这段代码时,我得到的错误是
错误:没有匹配函数调用'Derived::Derived(string (MainClass::*)(int))'
紧随其后
注意:候选人是:Derived::Derived(string (*)(int))
知道我做错了什么吗?
【问题讨论】:
标签: c++