我希望有一个类成员,它是指向未定义的典型函数的指针 该功能必须由用户执行。用户必须将函数作为参数传递给类构造函数。 该函数在类methodes的范围内调用。 我可以这样做这些任务吗?
class MyClss
{
private:
bool (*f)();
public:
MyClss(bool (*fp)());
void MyMethod();
}
MyClss::MyClss(bool (*fp)())
{
f = fp;
}
void MyClss::MyMethod()
{
// do tasks
if(f())
{
// do tasks
}
}
答案 0 :(得分:0)
您提供的代码将正常运行。请参阅下面的代码,但使用std::function
头文件中的<functional>
。
#include <functional>
// The function prototype.
typedef std::function<bool()> MyFunction;
class MyClss
{
private:
MyFunction f;
public:
MyClss(MyFunction fp);
void MyMethod();
};
MyClss::MyClss(MyFunction fp)
{
f = fp;
}
void MyMethod()
{
// do tasks
if(f())
{
// do tasks
}
}