gpt4 book ai didi

其他人使用的单独文件中的 C++ 命名空间

转载 作者:行者123 更新时间:2023-11-28 08:07:46 25 4
gpt4 key购买 nike

我一直发现我经常想要为一个程序设置一组“全局”参数 - 由不同文件中的许多不同类使用的变量分别编译。我想将这些参数放在一起,简洁且易于访问,比如

namespace Params {
static int WindowHeight = 600;
//...etc.
};

但是,如果将此包含在内以生成 a.o 和 b.o,则“static”会使这些变量成为每个 .o 文件的本地变量,而不是让它们共享,并且放弃“static”会导致多个定义。另一种选择是创建一个静态类,如

class Params {
public:
static int WindowHeight;
//...etc.
}

但是你必须在其他地方单独初始化参数:

int 参数::WindowHeight = 600;

这是我真正想避免的事情。我什至会接受类似下面的内容(顺便说一句,这对我不起作用)

namespace Params {
static int WindowHeight
#ifdef __MUST_INIT_PARAMS
= 600
#endif
;
};

只要每个条目都可以保存在一个地方。

有什么想法吗?任何形式的帮助都会很棒!谢谢!

最佳答案

如果你所有的参数都是编译时已知的整数,你可以使用enum:

namespace Params {
enum e {
WindowHeight = 600,
// etc.
};
}

用法:

  InitWindow(Params::WindowHeight);

关于其他人使用的单独文件中的 C++ 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9912227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com