我已经花了三个小时尝试找出我的问题所在。我只需要其他人帮我看一下,我已经尝试了我能想到的一切,甚至包括各种随机排列组合,试图让编译器告诉我有用的信息。
现在我在这里:
代码:
class villain
{
public:
villain();
//lots of other stuff
bool Type1EnemyBlasts();
bool Type2EnemyBlasts();
bool (villain::*OnFire)();
};
villain::villain()
{
//lots of other stuff
OnFire = &villain::Type1EnemyBlasts;
}
main
{
//lots and lots of other stuff
villain *targets[100];
targets[0] = new villain();
if(targets[0]->*OnFire() == true)
{
//do stuff
}
}
当我调用 "targets[0]->*OnFire()" 时,出现错误,指出它在此范围内未声明。 对于我来说,必须在villain构造函数中定义 "OnFire",并使用 "&villain ::" 定义它,感觉很奇怪,但我找到的所有信息都表明必须以这种方式完成,否则会产生一堆错误。
调用属于 targets [0] 的 *OnFire()指针的正确语法是什么?
targets[0]->OnFire()
。 - user3235832