c++类里初始化各种类型的数据成员
发布日期:2021-09-12 06:44:49
浏览次数:2
分类:技术文章
本文共 645 字,大约阅读时间需要 2 分钟。
c++里初始化静态、非静态,const以及引用的数据成员各不相同
静态成员初始化
class a{ private: static int i1 = 1; //错误 static int i2; //应该这么做 static const int i3 =2; //正确 int i4 = 1; //正确};int a::i2 = 1; //在这里定义
总结一下,在类里面的静态数据成员,只有常量可以在类内定义,非常量的静态数据成员统一都在类内声明,类外定义
声明只是告诉编译器他的类型,定义时才分配内存空间 因为静态成员是类级别的,不是对象级别的,它的生存周期和源程序等同,为类所有的对象共享,所以如果在类里面就能定义分配内存空间,那么每一个对象被创建时都会分配一次内存,显然是不合理的,所以就放在类外,只分配一次内存空间 而至于常量静态数据成员,编译器知道他是一个常量,不会发生改变,所以可以在类内定义初始化 (小知识:一个变量只有可以拥有类外定义的情况下,才能被获得地址)const以及引用类型
class a{private: int i1; const int &i2; int &i3; const int i4;public: a(int tmp) : i2(tmp), i3(tmp), i4(tmp) {}};
初始化const以及引用类型的数据成员的唯一机会就是通过构造函数初始值
转载地址:https://blog.csdn.net/weixin_36888577/article/details/79755320 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月22日 06时12分07秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python 数据科学 - 【分类模型】 ☞ 决策树
2019-04-27
python - zip、numpy.c 函数
2019-04-27
python 数据科学 - 【分类模型】 ☞ 逻辑回归
2019-04-27
python 数据科学 - 【分类模型】 ☞ 稳健滴 SVM 支持向量机
2019-04-27
python - selenium 处理 alert
2019-04-27
Java - Set、List、Map
2019-04-27
Java - OnlyLady Spider(HttpClient 4.5 )
2019-04-27
Math - 高斯分布(正态分布)
2019-04-27
android学习笔记----简易音乐播放器原理
2019-04-27
Unity编辑器扩展——标签属性Attribute
2019-04-27
Unity中实现拖拽操作
2019-04-27
Unity中的UGUI事件系统
2019-04-27
C#中的常量
2019-04-27
C#中的静态变量与非静态变量
2019-04-27
C#中的ref、out、params关键字
2019-04-27
C#中的多态性
2019-04-27
C#中的命名空间
2019-04-27
设计模式——状态模式
2019-04-27
设计模式——工厂模式
2019-04-27