当前位置: 首页 > 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.jsqmd.com/news/1106016/

相关文章:

  • M4Markets的长期使用感受顺不顺手?
  • AI服装设计工作流拆解:为什么说下一站不是“AI画图工具”,而是“垂直AI设计平台”
  • 核心数据结构设计
  • 检索增强从零落地:检索增强系统的索引、召回与评测
  • ·系统建模与UML应用
  • 功能极简取舍:每个按钮都要为用户承担重量
  • AI 辅助:Node.js 与 Go 后端选型:高并发不是唯一判断标准
  • 【5天实战】从零构建AI-Native组织:飞书+Bot+Gitee全链路自动化实战指南——Day 2:飞书Bot开发配置
  • Kiran-shell 显示桌面插件:一键隐藏所有窗口的底层机制
  • CPP 学习笔记 语法总结
  • LSTM+Attention时间序列预测实战与优化
  • Java毕业设计-基于 Java 的在线文献分类管理系统的设计与实现 基于 Java 的在线文献检索管理系统(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • Wiki-Framework 1.2.0 新能力:wiki-sse 服务端推送
  • 第91题 2026年国家级科研痛点:高压IGBT芯片场截止(FS)结构与背面减薄工艺
  • 为什么现在 RAG 越来越少被提及?
  • CF710F String Set Queries 题解
  • 深度学习核心架构与工业部署实战指南
  • 选芯片编程烧录座,这3个专业性价比最稳
  • 3分钟上手AutoScreenshot:Windows和Linux自动截屏神器
  • Qt-摄像头捕获画面
  • 直流电机静音控制方案:从PWM优化到PCB布局
  • 大规模服务 ROI 评估:别让概念替代成本账本
  • 【2026年华为暑期实习(AI)-7月1日-第一题- 选择题】(题目+思路+JavaC++Python解析+在线测试)
  • 【项目实战】基于OpenCV和BDD100K数据集的辅助驾驶车道线检测与碰撞预警系统
  • 卡梅德生物科普:CD48(SLAMF2)的免疫调控机制与研究工具选择
  • SQL 复杂查询优化:先减少扫描,再谈语法漂亮
  • Better BibTeX 终极指南:告别LaTeX文献管理的混乱时代
  • 6. 深入 Nginx 核心:HTTP 11 个处理阶段与模块开发实战
  • 轻量级AI模型实战:低配设备部署与优化指南
  • 【2026年华为暑期实习(AI)-7月1日-第三题- Certainty Forcing 训练损失计算】(题目+思路+JavaC++Python解析+在线测试)