我有一个包含多个 cpp 文件和函数的 c++ 项目。
每个文件都需要自己的参数(即 MaxHorizonVelocity、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/