C++ 构造函数后面有冒号 ~ : ()

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 构造函数后面有冒号 ~ : ()相关的知识,希望对你有一定的参考价值。

  • 对含有对象成员的对象进行初始化

例如,
    类line有两个私有对象成员startpoint、endpoint,line的构造函数写成:
    line(int sx,int sy,int ex,int ey):startpoint(sx,sy),endpoint(ex,ey){……}
    初始化时按照类定义中对象成员的顺序分别调用各自对象的构造函数,再执行自己的构造函数

  •    初始化成员变量

例如,
    类rectangle有两个数据成员length、width,其构造函数写成:
    rectangle():length(1),width(2){}
    rectangle(int x,int y):length(x),width(y){}

  •     对父类进行初始化

例如,
    CDlgCalcDlg的父类是MFC类CDialog,其构造函数写为:
    CDlgCalcDlg(CWnd* pParent ): CDialog(CDlgCalcDlg::IDD, pParent)
    其中IDD是一个枚举元素,标志对话框模板的ID
    使用初始化成员列表对对象进行初始化,有时是必须的,有时是出于提高效率的考虑

https://www.cnblogs.com/smartjourneys/articles/7372015.html

以上是关于C++ 构造函数后面有冒号 ~ : ()的主要内容,如果未能解决你的问题,请参考以下文章

C++类成员冒号初始化以及构造函数内赋值

C++,构造函数后的冒号是啥意思? [复制]

C++ 构造函数初始化列表

C++ 类 class 构造函数 : 成员赋值 父类提前构造

C++类名后加冒号是啥意思

C++成员初始化列表(构造函数后加冒号:)(用于在构造函数中初始化类成员变量,可以避免使用构造函数体内的赋值语句,可以确保成员变量在对象构造之初就已经被正确初始化,提高代码的性能和可读性)