gpt4 book ai didi

c++ - 在构造函数中初始化 vector - C++

转载 作者:行者123 更新时间:2023-11-27 23:22:28 30 4
gpt4 key购买 nike

我正在努力处理我的一个类的构造函数对成员的操作未正确初始化。

我有一个类“设置”来处理我用于模拟的设置和执行模拟步骤的模拟类。

我不明白的是为什么这段代码没有按预期工作:

      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 效果很好,我只是想知道为什么以正确的方式定义它并没有像预期的那样工作!

非常感谢您的帮助!

最佳答案

你不需要额外的 vector :

Simulation::Simulation(Settings *pS) 
:SP(pS), v(SP->n,0) {}

如果这不起作用,则这不是您的代码。您确定在类定义中 v 之前声明了 SP 吗?如果这也不起作用,请尝试使用 pS 而不是 SP

关于c++ - 在构造函数中初始化 vector - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11821998/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com