我需要在整个程序中引用各种常量。我一直在使用静态 const 类成员,而不是使用全局变量:
class Human
{
public:
static const int HANDS = 2;
static const int FINGERS = 10;
};
问题是我需要从 XML 数据文件中读取值。我知道我可以用一个函数初始化一个静态成员:
const int Human::HANDS = ReadDataFromFile();
由于只能在同一个编译单元中预测初始化的顺序,所以我必须将它们全部定义在同一个 CPP 文件中。这不是一个真正的问题,但它会有点混乱。
真正的问题是,我的 ReadDataFromFile() 函数中的所有内容都需要在我的代码有机会运行之前准备好使用。例如,我有一个 XML 类,它通常处理从文件中读取 XML 数据。但是,在这种情况下我不能使用它,因为静态成员在我的 XML 类对象构建之前就已经初始化了。
除了随处可见的随机全局变量之外,还有更好的方法来组织常量吗?