• 构造函数初始化列表


    问题描述:

            何时,必须使用c++构造函数初始化列表?

    问题解决:

        构造函数分两阶段执行:

        (1)初始化阶段  ——可以分为显式初始化和隐式初始化,类类型的数据成员总是在初始化阶段初始化,初始化发生在计算阶段开始之前。     

        (2)普通计算阶段——由构造函数的函数体中的所有语句组成。

    需要注意的是:

        1、构造函数除了有函数名、形参列表、函数体、无返回值之外,还可以包含一个构造函数的初始化列表

        2、没有默认构造函数的类类型的成员,const或者引用类型的成员,都必须在构造函数的初始化列表中进行初始化。

        3、内置类型的成员不进行隐式初始化,此这些成员进行初始化或者赋值都无关紧要。

        考虑如下代码:

    clipboard

    clipboard[1]

    编译时,会出现如下的错误提示信息:

    clipboard[2]

    注:

        如上类,构造函数体中初始化int& 、const、类对象都会出现错误。

         1、关于类对象class_data ,需要在构造函数初始化时初始化该对象,此时会调用class_data类 integer的默认构造函数,但是integer类不包含默认构造函数,仅包含一个含参数的构造函数,因此初始化该对象class_data会出现错误。

        2、const数据必须在构造函数的初始化列表中显示初始化,如果在构造函数体中初始化,因为const_data是const数据类型,因此不能进行赋值,错误。

        3、引用,由于构造函数初始化时没有为ref_data绑定引用对象,并为进行初始化,因此在函数体赋值时会出现错误。

  • 相关阅读:
    获取txt文件的内容
    MAT(Memory Analyzer Tool)下载和安装
    转换流:指定编码 读取文本文件InputStreamReader和写出文本文件OutputStreamWriter 字符集
    切入点表达式
    并发时事务引发的问题和事务的隔离级别
    多线程之join方法
    多线程之守护线程
    约束:主键、非空、唯一、外键
    数据库设计
    PLSQL过期解决办法
  • 原文地址:https://www.cnblogs.com/luosongchao/p/3554795.html
Copyright © 2020-2023  润新知