• c++ 关于类构造函数的初始化列表


    除了性能问题之外,有些时场合初始化列表是不可或缺的,以下几种情况时必须使用初始化列表

    • 常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面
    • 引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表里面
    • 没有默认构造函数的类类型,因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数初始化

    成员变量的初始化顺序

    • 成员是按照他们在类中出现的顺序进行初始化的,而不是按照他们在初始化列表出现的顺序初始化的

    初始化顺序

    • 构造函数初始化列表的变量优先于构造函数(至少明显的写在前面) (若都在初始化列表中初始化,则按声明顺序初始化,与初始化列表中的顺序无关)
    • 静态成员变量先于实例变量
    • 父类成员变量先于子类成员变量
    • 父类构造函数先于子类构造函数

    构造函数的两个阶段

    • 初始化阶段(初始化列表发生在初始化阶段)
    • 计算阶段

     

  • 相关阅读:
    邮箱整理
    C++ Primer Plus 6 笔记(1)
    MySQL的远程链接
    MySQL的安装和使用
    nginx的反向代理和负载均衡
    linux--配置开发环境 --Nginx篇
    linux--配置开发环境 --Apache篇
    Linux -- 运维
    Linux
    使用宝塔面板部署tp5网站
  • 原文地址:https://www.cnblogs.com/de0319gh/p/3253926.html
Copyright © 2020-2023  润新知