我收到的确切错误是:
error C2064: term does not evaluate to a function taking 0 arguments
我正在尝试创建一个基本的逻辑门模拟工具。这只是基本逻辑的一部分,这是我这个规模的第一个项目。我在下面包含的是一个门类的代码,AND门类将继承此基类的属性。我的错误在函数指针调用时发生。
class gate
{
protected:
short int A,B;//These variables represent the two inputs to the Gate.
public:
short int R;//This variable stores the result of the Gate
gate *input_1, *input_2;//Pointers to Inputs
void (gate::*operationPtr)();
void doAND()//Does AND operation
{
R=A&&B;
operationPtr=&gate::doAND;
}
short int getResult()
{
operationPtr();//ERROR OCCURS HERE
return R;
}
};
答案 0 :(得分:2)
operationPtr
是指向成员函数的指针,不是指向函数的指针。这意味着要取消引用它,您还必须提供一个对象,调用该函数。你可能意味着这个:
short int getResult()
{
(this->*operationPtr)();
return R;
}