在 C++ 中,如何使变量成为常量,但在构造函数中分配给它?我想这样做的原因是因为我试图通过将所有数据放入 XML 文件然后将该数据加载到变量中来使用数据驱动设计。问题是我无法在初始化列表中加载值,所以我必须在构造函数(或其他地方)中执行它,但是变量不是恒定的。
这是一个 XML 文件:
<weapons>
<pistol>
<damage>5.0</damage>
...
</pistol>
...
</weapons>
然后我有一个像这样的类:
标题
class Weapon
{
public:
Weapon();
const float damage;
};
来源
#include "Weapon.h"
Weapon::Weapon()
{
//load damage value into damage variable
}
因为损坏变量是常量,所以我不能在构造函数中对它做任何事情,只能在初始化列表中,但显然我不能像在初始化列表中读取 XML 文件那样执行代码。因此,即使变量永远不会改变,我应该不让它保持不变还是有适当的方法让它保持不变并做我需要的?