我正在努力处理我的一个类的构造函数对未正确初始化的成员所做的事情。
我有一个“设置”类来处理我用于模拟的设置和一个执行模拟步骤的模拟类。
我无法理解的是为什么这段代码不能按预期工作:
class Settings{
public:
int n ; // a number I need to create properly a vector in my class simulation
// ... rest of the code constructors etc to read values from files.
// everything works fine and the values are assigned properly
}
class Simulation{
public:
std::vector<int> v ;
Settings *SP;
Simulation(Settings *);
}
Simulation::Simulation(Settings *pS)
:SP(pS), v(std::vector<int>(SP->n,0)) {} // the constructor doesn't work,
// v is initialized but it is not created as a vector of size n, but 0.
我认为我使用构造函数的方式存在问题,但我不明白为什么。
顺便说一下在大括号内定义 v 工作正常,我只是想知道为什么以正确的方式定义它不能按预期工作!
非常感谢您的帮助!