Fen*_*rir 3 c++ parameters methods pointers pointer-to-member
我正在尝试将方法作为参数传递给其他方法.
Magner.h:
Class Manager{
public:
timeCount(void (Manger::*function)(void));
void passedFuction();
}
Run Code Online (Sandbox Code Playgroud)
在Manager.cpp,我试图调用timeCount由
timeCount(&Manager::passedFuction());
Run Code Online (Sandbox Code Playgroud)
TimeCount正文:
void Manager::timeCount(void(Manager::*function)(void))
{
std::cout << "It works";
(*function)(); // here is error
}
Run Code Online (Sandbox Code Playgroud)
ViusalStudio说:
void*Manager::*function)() operand of '*' must be a pointer
我该如何纠正呢?我正在学习的例子是:http://www.cplusplus.com/forum/beginner/6596/
指向成员函数的指针(pmf)不是指针.让我再说一遍:
要调用pmf,您必须为其提供要调用它的对象.你可能想要:
(this->*function)();
Run Code Online (Sandbox Code Playgroud)
如果您有另一个obj正确类型的对象,您还可以使用:
(obj.*function)();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
455 次 |
| 最近记录: |