zoukankan      html  css  js  c++  java
  • c++ 关于类构造函数的初始化列表

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

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

    成员变量的初始化顺序

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

    初始化顺序

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

    构造函数的两个阶段

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

     

  • 相关阅读:
    Vue-嵌套路由
    Vue-详解设置路由导航的两种方法: <router-link :to="..."> 和router.push(...)
    Python
    windows和linux下 Python2,Python3 的环境及安装
    Python那点事
    Linux
    Linux
    Django
    Redis
    Django
  • 原文地址:https://www.cnblogs.com/de0319gh/p/3253926.html
Copyright © 2011-2022 走看看