本文介绍了C ++中的从简单到复杂的回调.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是实现一些代码,并且我似乎无法使回调正常工作.看起来应该如此,但是我收到``错误C2064:术语未评估为带有0个参数的函数''.当它很明显确实需要x个参数时.只需用几行代码即可.

class who {
public:
	void peace();
	void war();
	void negotiator(void (who::*talk)(void) );
};
void who::peace() {
	printf("Peace! ");
}
void who::war() {
	printf("WAR!!! ");
	this->negotiator(&who::peace);
}
void who::negotiator(void (who::*talk)(void) ) {
	talk();
}
int main() {
	who w;
	w.war();
	return 0;
}

我在这里缺少什么?

推荐答案

因此,您必须像调用成员函数的指针一样调用它,而不是像普通成员函数那样调用它.
So you must call it like a pointer to a member function and not like an ordinary member function.


这篇关于C ++中的从简单到复杂的回调.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 13:10