c++ 中的参数 class

Parameters class in c++

我有一个包含多个 cpp 文件和函数的 c++ 项目。

每个文件都需要自己的参数(即 MaxHorizo​​nVelocity、MaxVerticalVelocity 等)。

我希望这些参数不会硬编码,而是在初始化步骤从单个配置参数文件中读取。

现在我想定义一个参数 class ,它将在开始时读取参数并且将是 "static" (在某种意义上我不确定......)。

这被认为是一种好的做法吗?还有别的办法吗?

我通常用下面的方式处理这个问题。代码本身是不言自明的。

所有可配置项都必须派生自 IConfigurable 接口。

class IConfigurable {
    public:
        virtual void configure(XMLNode&) = 0;
};

每个可配置项都假设配置函数将被调用,并且给定的 XMLNode 将是配置 xml 文件中的根节点。之后每个可配置项根据自己做具体的解析。

class CommandClick : public IConfigurable {
    public:
        void configure(XMLNode& xCommandNode) {
            XMLNode xClickCoordinate = xCommandNode.getChildNode("Coordinate");
            unsigned int x = atoi(xClickCoordinate.getAttribute("x"));
            unsigned int y = atoi(xClickCoordinate.getAttribute("y"));
            mClickCoordinate.setX(x);
            mClickCoordinate.setY(y);
        }
    private:
        Coordinate mClickCoordinate;
};