当前位置: 首页 > news >正文

初始化列表详解

1.类中包含以下成员,必须放在初始化列表位置进行初始化:

              1. 引用成员变量
               2.const成员变量
               3. 自定义类型成员(且该类没有默认构造函数时 )

2. 成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关

内置类型成员 

1.如果没有在类中声明默认值,也没有初始化列表显式赋值,那么就直接不管内置类型的初始化了,没有对应初始化指令,是内存残留值。

自定义类型

1.自定义类型不能在类中声明默认值,如果没有显式调构造,编译器会去自动调自定义类型的默认构造,如果不存在默认构造就报错

静态成员变量为什么必须在类外初始化?

1. 静态成员的核心特性

  • 共享性:类的所有对象共享同一份静态成员。

  • 生命周期:存在于程序的整个生命周期(类似全局变量)。

  • 存储位置:不在对象内存中,而是存储在全局/静态数据区

2.语言规则要求
  • 声明定义分离

    • 类内:仅作声明(告诉编译器存在这个静态成员)。

    • 类外:实际分配内存并初始化(定义)

3.初始化语法规则

基本形式

cpp

// 类内声明
class MyClass {
public:static int s_value;  // 声明(不分配内存)
};// 类外定义和初始化
int MyClass::s_value = 42;  // 必须出现在.cpp文件中

相关文章:

  • GPT-4o 图像生成与八个示例指南
  • 算法技巧——打表
  • 数字智慧方案5860丨智慧机场整体解决方案(41页PPT)(文末有下载方式)
  • Java大师成长计划之第10天:锁与原子操作
  • PINNs案例——多介质分区温度场
  • Nacos使用
  • DeepSeek实战--Function Calling
  • [官方 IP] Utility Flip-Flop
  • 不小心误删了文件,找Windows数据恢复工具来帮忙
  • 泰迪杯特等奖案例学习资料:基于CLIP模型微调与知识蒸馏的多模态图文检索系统设计
  • Linux-常用监控工具
  • 【Touching China】2002-2006
  • C++_STL
  • MLPerf基准测试工具链定制开发指南:构建领域特异性评估指标的实践方法
  • CPU:AMD的线程撕裂者(Threadripper)系列
  • 18. LangChain分布式任务调度:大规模应用的性能优化
  • PostgreSQL 查看表膨胀情况的方法
  • [Control-Chaos] Heart Broken(心臟破裂)
  • CPO-BP+NSGA,豪冠猪优化BP神经网络+多目标遗传算法!(Matlab完整源码和数据)
  • 2.maven 手动安装 jar包
  • 首都航空:太原至三亚航班巡航阶段出现机械故障,已备降南宁机场
  • 消费持续升温,这个“五一”假期有何新亮点?
  • 一周文化讲座|那些年的年青人
  • 强制性国家标准《危险化学品企业安全生产标准化通用规范》发布
  • 五部门:开展新就业形态劳动者劳动权益保障水平提升专项行动
  • “光荣之城”2025上海红色文化季启动,红色主题市集亮相