初始化列表问题
Initialization List Problems
DoubleVector::DoubleVector(unsigned int buffer) : len(buffer), data(new base_int[len]), start(len / 2), end(start)
即使缓冲区设置为 50,也会为开始和结束生成非常大的值。 len 包含正确的值 50,但开始和结束都包含一些超过 100 万的值。 然后,我将代码更改为以下内容。
DoubleVector::DoubleVector(unsigned int buffer) : len(buffer), data(new base_int[len]), start(buffer / 2), end(start)
现在,开始和结束都使用正确的值 25 进行初始化。 为什么? 您是否不应该假设变量的初始化顺序是什么?
基本成员初始化的顺序是成员变量在类定义中出现的顺序。
最好不要依赖它。(这样做会使代码非常脆弱(。
相关文章:
- 在没有参数列表的情况下使用模板名称"Event"无效,模板问题
- C++关于ENUM的问题。我得到的响应比枚举列表大
- 替代在python中制作邻接列表与图形问题的字典?(如 C++ 中的 vector<vector<int&g
- 在C++中循环访问自定义结构列表的小问题
- 关于Stroustrup C++书的自动和{}列表问题
- 将值推送到 getter 函数调用的列表中时出现问题
- 使用初始化列表填充C++中的多维结构数组时出现问题
- 在 c++ 中访问列表向量时出现问题
- 有关具有编译错误的操纵列表的问题
- C++:继承和列表函数作为类成员的问题
- C++ 入门加列表:10.9 "顶部"指针问题
- 尝试使用初始值设定项列表构造"std::vector"的问题
- 自己的C++列表类实现(插入函数)出现问题
- 链接的列表字符串分类问题
- C 链接列表和总和问题
- C++有问题的函数,数组到列表
- 从一系列问题列表中生成输入(x)问题
- 析构函数问题 + 列表显示
- 显示条件有问题?(列表中的对象)
- 信号发出问题-列表视图没有显示完整的列表