冒号初始化与构造函数内赋值
Posted DreamLife.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒号初始化与构造函数内赋值相关的知识,希望对你有一定的参考价值。
冒号初始化与构造函数内赋值
今天优势神奇的一天,昨天和老婆说我把我梦到张扁扁的事情写进的我博文里面了,谈说他不高兴了,那我就在写一遍,哈哈哈。
说正事,今天在公司假装努力的时候,发现一个神奇的问题,就是在构造函数后面用:初始化可以正常使用,在构造函数内使用,就不可以了,MLGB的,大学老师也没有教呀,还是我忘记了,今天正好在水一篇博客。
能力有限,先抄为敬!地址:https://blog.csdn.net/zj510/article/details/8135556
关键字:
C/C++
、构造函数
、初始化
、冒号
、函数内
对类成员进行初始化的方式
通常,我们对类成员函数进行初始化有两种方式,
1 构造函数后面跟冒号
2 构造函数里面对成员进行赋值
我更喜欢第二种。
但是呢,说实话,我是真的就是博主提到的那样根本就不知道这两者的区别。今天看了以后才是真的明白了,就是两句话
跟括号初始化就是通过初始化列表初始化,是系统创建成员变量并初始化,也就是系统为成员变量分配了一块内存并把相应的数据给填进去;
而构造函数里面调用等于号的方法,是分配好以后再进行赋值。
参考链接
https://www.cnblogs.com/xkfz007/archive/2012/05/11/2496447.html
以上是关于冒号初始化与构造函数内赋值的主要内容,如果未能解决你的问题,请参考以下文章
C++成员初始化列表(构造函数后加冒号:)(用于在构造函数中初始化类成员变量,可以避免使用构造函数体内的赋值语句,可以确保成员变量在对象构造之初就已经被正确初始化,提高代码的性能和可读性)