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()