鱼C论坛

 找回密码
 立即注册
查看: 1108|回复: 2

c++初始化列表申请空间问题

[复制链接]
发表于 2022-3-20 12:17:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
屏幕截图 2022-03-20 121406.png
为啥这里会报内存不足的错误,而且是偶尔会报
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-20 12:57:59 | 显示全部楼层
本帖最后由 人造人 于 2022-3-20 13:06 编辑
  1. 成员初始化的顺序:

  2. 成员初始化的顺序和它们在类定义中出现的顺序一致,构造函数初始值列表中的前后位置不会影响实际的初始化顺序。
复制代码


https://blog.csdn.net/growth_pat ... tm_relevant_index=5


  1. 构造函数初始化列表仅用于初始化成员的值,并不指定这些初始化执行的次序。成员被初始化的次序就是定义成员的次序。第一个被定义的成员先被初始化,依次类推。一般,初始化的顺序无关紧要,然而,如果一个成员是根据其他成员而初始化,则成员的初始化顺序是至关重要的。
复制代码


https://www.cnblogs.com/beeasy/p ... utm_medium=referral
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-20 13:05:42 | 显示全部楼层
你的编译器对这种情况一声不吭?
还是说你根本就不看警告?
还有,提问题要发代码

  1. $ cat main.cpp
  2. #include <iostream>

  3. class test_t {
  4. public:
  5.     test_t(int i): p(i + 1), i(i) {}
  6. private:
  7.     int i;
  8.     int p;
  9. };

  10. int main() {
  11.     test_t t(10);
  12.     return 0;
  13. }
  14. $ g++-debug -o main main.cpp
  15. main.cpp: In constructor ‘test_t::test_t(int)’:
  16. main.cpp:8:9: warning: ‘test_t::p’ will be initialized after [-Wreorder]
  17.     8 |     int p;
  18.       |         ^
  19. main.cpp:7:9: warning:   ‘int test_t::i’ [-Wreorder]
  20.     7 |     int i;
  21.       |         ^
  22. main.cpp:5:5: warning:   when initialized here [-Wreorder]
  23.     5 |     test_t(int i): p(i + 1), i(i) {}
  24.       |     ^~~~~~
  25. $
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 09:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表