C++ C++;在另一个类if语句中使用类返回函数
好吧,我有这个问题已经有一段时间了,我相信我已经指出了问题所在,但我不确定如何解决它C++ C++;在另一个类if语句中使用类返回函数,c++,C++,好吧,我有这个问题已经有一段时间了,我相信我已经指出了问题所在,但我不确定如何解决它 void Unit::AddStatusEffect(StatusEffect effect) { // Add status effect and if it effects what actions a unit can do, do it here. myEffects.push_back(effect); if( effect.GetEffect == effect.STUN)
void Unit::AddStatusEffect(StatusEffect effect)
{
// Add status effect and if it effects what actions a unit can do, do it here.
myEffects.push_back(effect);
if( effect.GetEffect == effect.STUN)
{
myCanMove = false;
myCanAttack = false;
myCanCast = false;
}
else if (effect.GetEffect == effect.MUTE)
{
myCanCast = false;
}
else if (effect.GetEffect == effect.BLIND)
{
myCanHit = false;
}
else
{}
}
我的问题似乎是StatusEffect类中的effect.GetEffect返回函数。如果我问(effect.STUN==effect.STUN),我没有得到错误,这就是为什么我认为函数是问题所在。我得到的错误似乎是:
函数调用缺少参数列表;使用“&StatusEffect::GetEffect”创建指向成员的指针
(这是课程,以防有问题)
我希望我把我的问题解释得足够清楚。我读到的所有内容似乎都没有帮助我解决这个问题。在
Unit::AddStatusEffect
中,将effect.GetEffect
替换为effect.GetEffect()
effect.GetEffect
和effect.GetEffect()
之间的区别在于,第一个计算结果是指向成员函数的指针(函数不会被调用),而第二个计算结果是函数调用的返回值。您必须通过添加括号来调用方法或函数,即使没有争论
effect.GetEffect()
@乌拉莫克:我们大多数人都犯过很多愚蠢的错误。别难过。很高兴我能帮忙。是的,我犯过很多愚蠢的错误,但我总是自己发现的。这是我第一个没看到的愚蠢错误。
effect.GetEffect()