个人学习记录-Cpp基础-成员初始化列表

https://blog.csdn.net/XIONGXING_xx/article/details/115553291
https://blog.csdn.net/W_Y2010/article/details/120242653
https://blog.csdn.net/baidu_41388533/article/details/109489401

1.对象将在参数列表,就是括号内的代码执行前,给成员变量分配内存;

2.程序流程进入括号内,使用常规的赋值方式将值存储到内存中;

3.进入构造体函数中进行赋值和计算;

这个过程就会引发一些问题:

1)成员变量是一个const对象,那么在分配内存后就不能进行赋值;

2)成员变量是一个引用过对象,构造后也不能被赋值,因此必须在创建时就进行初始化;

3)成员变量是一个类,这个类没有无参构造函数,在初始化时,没有办法进行构造;

4)子类在初始化父类的私有成员时;

实际就是部分成员在初始化和复制操作分开后,会出现问题;

c++提供了一个针对此类问题的解决方法,成员初始化列表。

对于构造函数而言,C++提供了两种变量初始化的方式,在构造器的函数内,在初始化列表中;

class Test
{
private:
string m_str;
const int m_age;
public:
Test(const string &s, int i):m_str(s),m_age(i);

1.编译器会根据类声明的参数顺序去进行执行,和初始化列表里的顺序无关;

2.初始化列表里的代码执行,是在构造函数体之前进行执行的;

直接在构造函数内进行初始化时,会把参数进行拷贝构造,生成临时对象,把临时对象赋值给成员变量,再析构它;

而使用成员初始化列表则直接进行成员变量的构造,少了临时对象生成的步骤;

Original: https://www.cnblogs.com/Albert-lihai/p/16553519.html
Author: Albert_禄遥
Title: 个人学习记录-Cpp基础-成员初始化列表

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577718/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • opencv

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月14日
    0119
  • Shell脚本监控线上端口服务是否正常开启

    前言: 线上服务正常可用是至关重要的,当正在运行的某个端口服务异常停止,我们期望定时脚本可以自动启动,而无需遇到问题再人为的启动。 例如:监听Mysql服务是否正常,我们通常的思路…

    Linux 2023年5月28日
    0111
  • HRShell:Flask构建的HTTPS HTTP反向Shell

    https://www.freebuf.com/sectool/212678.html 纸上得来终觉浅,绝知此事要躬行! Original: https://www.cnblogs…

    Linux 2023年5月28日
    0124
  • 小记:音频格式转化ByPython(上)

    近日新买了个耳机,店家附送了一些周董的无损音乐资源,收到货后迫不及待的下载试听,才发现这些资源是wav格式的,导入播放器后歌名、作者、专辑等全是未知,当时想着是不是店家的资源有问题…

    Linux 2023年6月8日
    0116
  • Harbor部署

    harbor 无论是使用Docker-distribution去自建仓库,还是通过官方镜像跑容器的方式去自建仓库,通过前面的演示我们可以发现其是非常的简陋的,还不如直接使用官方的D…

    Linux 2023年6月7日
    0113
  • identity server4 授权成功页面跳转时遇到错误:Exception: Correlation failed. Unknown location的解决方法

    一、异常信息描述 错误信息,看到这个页面是否耳熟能详担又不知道怎么解决 ,坑死个人不偿命,,,,,,,, 二、处理方法 1、在web项目中增加类SameSiteCookiesSer…

    Linux 2023年6月13日
    0130
  • 机器学习学习笔记之一:K最近邻算法(KNN)

    假定数据有M个特征,则这些数据相当于在M维空间内的点 [X = \begin{pmatrix} x_{11} & x_{12} & … & x_…

    Linux 2023年6月14日
    082
  • 【原创】linux设备模型之kset/kobj/ktype分析

    背 景 Read the fucking source code! –By 鲁迅 A picture is worth a thousand words. &#8211…

    Linux 2023年6月8日
    0115
  • 数据库性能优化八大方案,你知道几个

    前言 毫不夸张的说咱们后端工程师,无论在哪家公司,呆在哪个团队,做哪个系统,遇到的第一个让人头疼的问题绝对是数据库性能问题。 如果我们有一套成熟的方法论,能让大家快速、准确的去选择…

    Linux 2023年6月13日
    079
  • nslookup:command not found的解决办法

    nslookup:command not found的解决办法 通过nslookup查看DNS记录,在这里遇到了一个小插曲,nslookup:command not found(未…

    Linux 2023年6月7日
    089
  • LeetCode-补充题2. 圆环回原点问题

    题目来源 题目详情 圆环上有10个点,编号为0~9。从0点出发,每次可以逆时针和顺时针走一步,问走n步回到0点共有多少种走法。 输入: 2输出: 2解释:有2种方案。分别是0-&g…

    Linux 2023年6月7日
    0108
  • Linux网络配置

    第一种 通过编辑网络配置文件/etc/sysconfig/network-scripts/ifcfg-ens32 -> TYPE=Ethernet -> #网卡类型是以…

    Linux 2023年5月27日
    0116
  • Tomcat 实现双向SSL认证

    大概思路: 使用openssl生产CA证书,使用keytool生产密钥库 1、生成CA密钥 genrsa [产生密钥命令] -des3 [加密算法] -out[密钥文件输出路径] …

    Linux 2023年6月14日
    088
  • 结构型之【装饰器模式】

    定义: 装饰器模式(Decorator Pattern) 也称为包装模式(Wrapper Pattern) 是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性…

    Linux 2023年6月14日
    0119
  • archLinux 配置用户

    archlinux 启动之后只有默认的root用户,首先介绍下系统启动到登录需要的步骤 1.系统通过systemd 以pid为1初始化系统,启动系统用户和系统必要的服务,(这一步目…

    Linux 2023年6月13日
    089
  • JMeter压测出现“the target server failed to respond“的解决办法

    压测接口的时候,遇到了这个问题,在网上找到解决方案,试一下还挺管用,800并发没改前20%以上的报错率,改完800并发0.00%报错率。 感谢曲健老师的分享 解决方案如下: 修改执…

    Linux 2023年6月8日
    095
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球