c++中的参数类

Parameters class in c++

本文关键字:参数 c++      更新时间:2023-10-16

我有一个c++项目,它有多个cpp文件和函数。

每个文件都需要自己的参数(即MaxHorizonVelocity、MaxVerticalVelocity等)

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

现在我想定义一个参数类,它将在开始时读取参数,并且将是"静态的"(在某种意义上,我不确定…)

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

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

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

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

每个可配置项都假定将调用configure函数,并且给定的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;
};