我试图从单独的类中访问变量,但我收到错误。
if (bSprinting){
UPlayerPawnMovementComponent::movementSpeedMultiplier = 500.0f;
}
其中错误来自movingSpeedMultiplier,当我悬停在其上时说:非静态引用必须与特定对象相关。
有问题的变量就在这里:
public:
virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;
float movementSpeedMultiplier = 150.0f;
我知道这不起作用,我完全不知道如何让变量在两个类中都可编辑。
提前致谢
答案 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;
}