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

类成员变量的初始化 _

需要注意的是:类中的静态成员变量只有静态常量,并且类型是整型或者枚举类型,才能在类内初始化,其他都得在类外初始化。

#include <iostream> using namespace std; class Base { public: Base(){ } Base(int num){ } int a = { 4 }; int b{ 1 }; double cc = 1.23; char aa = 'a'; string str = "hello"; string str1{ "world" }; //string str2("hello,world"); //用()则会报错,类内不能用()初始化,在类外这个是有参构造,可以使用。 string str3 = { "hello" }; static int c; static const double d; static const char* const e; //静态常量字符数组指向静态字符数组 // 变量是静态常量,并且类型是整型或者枚举类型,才能在类内初始化,其他都得在类外初始化。 const static int f = 0; //const static 和 static const 意义相同,没有区别 }; int Base::c = 8; const double Base::d = 3.14; const char* const Base::e = "i am luffy"; int main() { int ab { 4 }; string str7 = { "hello" }; string str8("888"); string str9 { "888888" }; return 0; }

另外还提供了初始化列表:

#include <iostream> using namespace std; class c { public: c() :m_num(66), a(3), b(3) { } c(int n1, int n2, int n3) : m_num(n1),a(n2), b(n3){ } int m_num = 8; int a; int b; }; int main() { c c1; c c2(11,22,33); cout << "c1.m_num = " << c1.m_num << " c1.a = " << c1.a << " c1.b = " << c1.b << endl; cout << "c2.m_num = " << c2.m_num << " c2.a = " << c2.a << " c2.b = " << c2.b << endl; system("pause"); return 0; }

输出结果:

c1.m_num = 66 c1.a = 3 c1.b = 3 c2.m_num = 11 c2.a = 22 c2.b = 33

使用初始化列表初始化成员变量

且从上面的程序中说明先运行了int m_num = 8;之后才进行初始化的m_num{66};

那么和之前的this->m_num = a;初始化方式比较谁先运行呢?

class c { public: c(int n1, int n2, int n3) : m_num(n1),a(n2), b(n3){ this->m_num = 99999; } int m_num = 8; int a; int b; }; int main() { c c2(11,22,33); cout << "c2.m_num = " << c2.m_num << " c2.a = " << c2.a << " c2.b = " << c2.b << endl; system("pause"); return 0;
http://www.gsyq.cn/news/1613458.html

相关文章:

  • Cellpose-SAM:突破性通用细胞分割算法的技术架构演进与性能基准分析
  • OpenCV实战:5分钟搞定图像二值化,手把手教你用C++实现大津法(OTSU)
  • 8530蜂鸣器上电不响故障排查
  • 2025耳夹耳机哪个品牌好?带你深度解析耳夹耳机排行榜前十名
  • FlaUInspect:现代化UI自动化元素检查工具的技术架构深度分析
  • 告别卡顿!用HC32F460的SPI+DMA驱动GC9306屏幕,实测刷屏性能提升指南
  • 别再只调API了!用SpringBoot+Session打造一个带记忆的ChatGPT对话服务
  • DeepSeek识图模式来袭,普通人也能抓住AI大模型应用开发风口(收藏备用)
  • 2026年签约前问清这5个问题,避免全包装修隐形消费!
  • Windows11退出Microsoft管理员账户
  • 终极指南:3步解锁QMC加密音乐的完全控制权
  • 【紧急避坑】VMware迁移后蓝屏/无法启动?这7类硬件抽象层(HAL)适配错误正在 silently 摧毁你的生产环境
  • 【ops设备,cast+投屏不能反向控制】
  • 手把手教你用C#批量转换SolidWorks图纸,让MES系统也能在线预览3D模型
  • 手把手教你用TM1640驱动数码管:从硬件连接到Arduino代码实战(附完整库)
  • 收藏!小白程序员必看:轻松入门大模型的多模态世界,解锁AI新能力!
  • 智能原型员中的对象复制与性能优化
  • 别再手忙脚乱!用uni-popup和uQRCode在Vue3项目中优雅集成微信扫码支付弹窗
  • 别再死磕单智能体了!用MAPPO在Combat环境里训练你的AI小队(附完整代码)
  • 什么是时间序列?
  • 如何挑选温和顺口养生酒?
  • 从纯文本政务 Agent 到具身交互智能:我用魔珐星云搭建大厅咨询数字人。
  • PySide6实战:从登录到主界面,如何优雅地传递用户数据(附完整代码)
  • 蜂群图核心特点
  • 速率管理化技术中的速率计划速率实施速率验证
  • 当 Agent 有了身体:我用魔珐星云做了一个沉浸式互动叙事具身 Agent
  • Minecraft服务器包生成技术指南:ServerPackCreator架构解析与性能优化
  • VMware OVF导出效率提升300%的黄金配置(附实测对比数据与vSphere 8.0兼容性验证)
  • 目标检测多尺度特征融合:原理、演进与YOLO实战指南
  • 别再手动插图片了!用EasyExcel 3.0.5 + POI 3.17,一键生成带产品图的Excel报告