【发布时间】:2018-09-11 01:26:01
【问题描述】:
我正在尝试将一个方法作为参数传递给其他方法。
Magner.h:
Class Manager{
public:
timeCount(void (Manger::*function)(void));
void passedFuction();
}
在Manager.cpp,我正在尝试通过
timeCount
timeCount(&Manager::passedFuction());
TimeCount 正文:
void Manager::timeCount(void(Manager::*function)(void))
{
std::cout << "It works";
(*function)(); // here is error
}
ViusalStudio 说:
void*Manager::*function)() '*' 的操作数必须是指针我应该如何纠正它? 我学习的例子是:http://www.cplusplus.com/forum/beginner/6596/
【问题讨论】:
-
您正在学习的示例早于 C++11。这不是我在 Modern C++ 中使用的方式——我会使用
std::function和 lambdas。此外,您没有按照示例演示的方式进行操作。
标签: c++ pointers methods parameters pointer-to-member