如何创建一个静态类来引用带有C++的字符串变量

How to make a static class to reference string variables with C++?

本文关键字:引用 C++ 变量 字符串 一个 何创建 创建 静态类      更新时间:2023-10-16

所以我试图使一个只保存字符串变量的通用C++静态。我在这个项目中使用的是虚幻引擎4。我有一个可行的解决方案,但我想看看我在 C# 中所做的是否可以在C++中完成。

工作解决方案(C++(:DFControllerGameModeBase.h

#pragma once
#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "DFControllerGameModeBase.generated.h"

#define MoveForwardInput        "MoveForward"

实现:

#include "DFControllerGameModeBase.h" 
void ADFCharacter::Play(){
.....
string text = MoveForwardInput;
}

但是,这就是我在 C# 中使用 Unity 所做的:

using System;
namespace Assets.Scripts.Helpers
{
    public static class Utilities
    {
        public static string MoveForward = "MoveForward";
    }
}

实现:

using Assets.Scripts.Helpers;
void Play(){
string text = Utilities.MoveForward;
}

如果你对封装没有问题,并且不会在蓝图中使用静态,那么只需使用 #define 就可以了。

您还希望使用大写字母来实现 #define 命名约定。

#define MOVE_FORWARD_INPUT "MoveForward"

但是,如果您希望将其封装并能够在蓝图中调用它。然后,您必须创建一个静态帮助程序类。

.h
class Utilities
{
public:
    static const FString MoveForward;
    //create BP getter function here
}
.cpp
const FString Utilities::MoveForward = "MoveForward";