c++ - C++中的参数类

标签 c++ parameter-passing

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

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

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

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

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

最佳答案

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

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

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;
};

关于c++ - C++中的参数类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33383965/

相关文章:

c++ - 有没有办法在 C++ 中使用模板函数来做到这一点

c++ - 在 C++ 中删除 void* 指针

c++ - 让类(class)与运营商合作的更简单方法?

c++ - 如何使用 std::allocator_traits::construct 从函数参数创建结构对象?

arrays - 将数组从 HLSL 顶点着色器传递到像素着色器

c++ - 为什么 C++ 中的函数重载决策考虑静态调用的非静态成员函数?

c++ - 为iOS生成AWS-SDK-CPP时在cmake上损坏的CXX编译器错误

C 参数设置但未使用

java - 如何将 Class 作为参数传递并在 Java 中返回泛型集合?

c++ - 如何保持存储在作为参数传递的指针中的地址在所有函数调用中保持一致