Unreal 4 非法引用非静态成员
Unreal 4 illegal reference to non-static member
我试图从一个单独的 class 访问一个变量,但出现错误。
if (bSprinting){
UPlayerPawnMovementComponent::movementSpeedMultiplier = 500.0f;
}
错误来自 movementSpeedMultiplier,当我将鼠标悬停在上面时它说:非静态引用必须相对于特定对象。
有问题的变量是这里的这个:
public:
virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;
float movementSpeedMultiplier = 150.0f;
我知道这行不通,我完全不知道如何使变量在两个 classes 中都可编辑。
提前致谢
了解 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;
}
我试图从一个单独的 class 访问一个变量,但出现错误。
if (bSprinting){
UPlayerPawnMovementComponent::movementSpeedMultiplier = 500.0f;
}
错误来自 movementSpeedMultiplier,当我将鼠标悬停在上面时它说:非静态引用必须相对于特定对象。
有问题的变量是这里的这个:
public:
virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;
float movementSpeedMultiplier = 150.0f;
我知道这行不通,我完全不知道如何使变量在两个 classes 中都可编辑。
提前致谢
了解 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;
}