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

【DeepSeek 学C+】effective modern c+ 条款七 初始化

文章目录

  • 1. 非静态成员变量在类内初始化,时会分配内存吗 ?什么时候分配内存,
  • 2. 大括号可以为非静态成员指定默认初始值。 那静态成员函数呢
  • 3. 静态成员变量什么时候分配内存
  • 4.静态成员变量需要在类外定义和初始化, 为什么呢?
  • 5。 什么是静态局部变量

1. 非静态成员变量在类内初始化,时会分配内存吗 ?什么时候分配内存,

在这里插入图片描述

2. 大括号可以为非静态成员指定默认初始值。 那静态成员函数呢

静态成员变量需要在类外定义和初始化
声明不分配内存。 定义并初始化时分配内存。
在这里插入图片描述

3. 静态成员变量什么时候分配内存

在C++中,静态成员变量需要在类外进行定义和初始化,这样编译器才能分配内存。例如,在类中声明static int x;,然后在cpp文件中写int MyClass::x = 0;。这时候,内存应该是在程序启动时,全局变量初始化阶段分配的。

另外,C++17引入了内联变量,允许在类内部直接初始化静态成员变量,比如inline static int x = 0;。这时候,内存分配可能还是在程序启动时,但不需要在cpp文件中单独定义了。
在这里插入图片描述

4.静态成员变量需要在类外定义和初始化, 为什么呢?

C++的One Definition Rule(ODR),即每个变量只能有一个定义。类内的声明只是告诉编译器有这个变量存在,但实际的内存分配必须在一个翻译单元中完成。这样做的原因是为了避免重复定义,确保所有使用该静态变量的地方都引用同一个实例。
在这里插入图片描述

在这里插入图片描述

5。 什么是静态局部变量

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


http://www.kler.cn/a/595550.html

相关文章:

  • PurpleLlama大模型安全全套检测方案
  • OpenCV ML 模块使用指南
  • 机器学习-04-分类算法-02贝叶斯算法案例
  • 电脑自动关机故障维修案例分享
  • FRP在远程办公中的实战应用
  • 23种设计模式(扩展)
  • HUGO介绍、安装、以及使用
  • 视频翻译器免费哪个好?轻松玩转视频直播翻译
  • 用 pytorch 从零开始创建大语言模型(五):预训练无标注数据
  • 自适应柔顺性策略:扩散引导控制中学习近似的柔顺
  • wordpress表单插件CF7调用方式
  • 防止重复点击方法总结-微信小程序
  • 基于ChatGPT、GIS与Python机器学习的地质灾害风险评估、易发性分析、信息化建库及灾后重建高级实践
  • 【视觉提示学习】3.21论文随想
  • ensp 公司组网拓扑图
  • scrapy入门(深入)
  • SpringCloud负载均衡:Ribbon核心组件与策略配置
  • 理解 Node.js 中的 process`对象与常用操作
  • 每日一题力扣2974.最小数字游戏c++
  • Kafka是如何实现幂等性的??