【发布时间】:2011-06-20 16:14:52
【问题描述】:
我想做的是有一个包含第二个类的函数指针映射的类,但是第二个类的名称应该无关紧要(不能硬编码到第一个类中)我真的很想成为能够在不使用宏的情况下实现这一点。我遵循了 learncpp.com 上关于函数指针的示例,但是当在类之间传递它们时,我真的迷路了!我的尝试如下:
#include <map>
class Class1;
typedef double(Class1::*memFunc)();
class Class1
{
private:
std::map<std::string, memFunc> funcMap;
public:
void addFunc(std::string funcName, memFunc function)
{
funcMap.insert(std::pair<std::string, memFunc>(funcName, function));
}
};
class MyClass
{
public:
MyClass()
{
//How do I add member function getValue() to Class1?
class1.addFunc("new function", getValue());
}
double getValue()
{
return 0;
}
private:
Class1 class1;
};
【问题讨论】:
-
顺便说一句,您是否还想存储对象的
this指针,该对象的成员函数要存储指针? -
@KerrekSB 事实证明,这也是我所需要的。很抱歉我之前没有看到这个回复。
标签: c++ function pointers member-function-pointers