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

初始化列表详解

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文件中
http://www.xdnf.cn/news/3712.html

相关文章:

  • 基于SpringBoot的同城宠物照看管理系统
  • stm32 hal库 SPI使用(二)硬件SPI的HAL库函数调用
  • 架构师面试(三十八):注册中心架构模式
  • 数字智慧方案6189丨智慧应急综合解决方案(46页PPT)(文末有下载方式)
  • Linux操作系统系统编程:x86-64架构下的系统调用
  • 数字智慧方案5872丨智慧交通解决方案(54页PPT)(文末有下载方式)
  • 13分区排烟 无法远程启动 12-1-4,排烟管道出口未连接室外
  • vmware虚拟机Linux系统( CentOS7)初始化没有选择Pinyin,无法输入中文(Linux系统输入中文)
  • 计算机网络——客户端/服务端,URI与URL的区别,以及TCP/IP核心机制全解析
  • 红鸟3D互动系统棋类源码一键部署教程(含多个打包版本与功能解构)
  • C++ 赋值运算符重载详解
  • 全局分割与实例分割技术对比:U-Net与Mask R-CNN
  • Python项目源码69:一键解析+csv保存通达信日线数据3.0
  • C++map和set
  • linux指令中的竖线(“|”)是干啥的?【含实例展示】
  • HTTP 状态码详解:用途与含义
  • QMK固件中LED指示灯与RGB灯详解指南
  • MySQL初阶:数据库基础,数据库和表操作,数据库中的数据类型
  • 组件通信-自定义事件
  • 基于SpringBoot+Vue实现的电影推荐平台功能一
  • SpringBoot基础(原理、项目搭建、yaml)
  • 【quantity】6 温度单位实现(temperature.rs)
  • wfp CommandParameter 详细解说
  • 数字智慧方案6190丨智慧应急综合平台解决方案(49页PPT)(文末有下载方式)
  • 开发规范-Restful
  • Android面试总结之jet pack模块化组件篇
  • GoogleTest:TEST_F
  • Proxmox VE 8.4 显卡直通完整指南:NVIDIA 2080 Ti 实战
  • 【OFDM过程中正交子载波特性的应用及全面解析】
  • C++负载均衡远程调用学习之HOOK注册机制