虚幻4非法引用非静态成员

时间:2016-05-03 22:55:49

标签: c++ unreal-engine4

我试图从单独的类中访问变量,但我收到错误。

    if (bSprinting){

        UPlayerPawnMovementComponent::movementSpeedMultiplier = 500.0f;
}

其中错误来自movingSpeedMultiplier,当我悬停在其上时说:非静态引用必须与特定对象相关。

有问题的变量就在这里:

public:
virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;

float movementSpeedMultiplier = 150.0f;

我知道这不起作用,我完全不知道如何让变量在两个类中都可编辑。

提前致谢

1 个答案:

答案 0 :(得分:0)

了解static members 您的问题的浏览版本可能如下所示:

struct A{
   float movementSpeedMultiplier;
};

int main(){
  //error: invalid use of non-static data member ‘A::movementSpeedMultiplier’
  A::movementSpeedMultiplier = 500.0f;
} 

将数据成员设置为静态,将允许您在没有实例化的情况下访问该成员。

struct A{
   static float movementSpeedMultiplier;
};
float A::movementSpeedMultiplier;

int main(){

  //compiles
  A::movementSpeedMultiplier = 500.0f;
}