C++函数后面加“:”的含义

news/2024/7/4 8:27:34

C++函数后面加“:”的含义

    • 在成员函数后面
    • 在构造函数后
      • 对父类进行初始化
      • 对类成员进行初始化
      • 对类的const成员变量进行初始化
    • 参考链接

在成员函数后面

c++成员函数后面跟“:”表示的是赋值,这是c++的特性:

A( int aa, int bb ):a(aa),b(bb)
{
}
//相当于
A( int aa, int bb )
{
a=aa;
b=bb;
}

在构造函数后

对父类进行初始化

调用格式为“子类构造函数 : 父类构造函数”,如下,其中QMainWindow是MyWindow的父类:

MyWindow::MyWindow(QWidget* parent , Qt::WindowFlags flag) : QMainWindow(parent,flag)

对类成员进行初始化

调用格式为“构造函数 : A(初始值),B(初始值),C(初始值)……”,如下,其中A、B、C分别是类的成员变量:

class rectangle //头文件中类定义
{
public:
    rectangle( int pointX, int pointY, int Width, int Length );
private:
    CPoint m_point;
    int m_Width;
    int m_Length;
};
 
rectangle::rectangle(int pointX, int pointY, int Width, int Length) : m_point(pointX,pointY),m_Width(Width),m_Length(Length)//源文件中构造函数实现
{
    todo......
}
//等价于
rectangle::rectangle(int pointX, int pointY, int Width, int Length)//源文件中构造函数实现
{
    m_point.X = pointX;
    m_point.Y = pointY;
    m_Width   = Width;
    m_Length  = Length;
    todo......
}

对类的const成员变量进行初始化

由于const成员变量的值无法在构造函数内部初始化,因此只能在变量定义时赋值或使用初始化列表赋值。

对类的成员及const成员变量进行初始化,有以下两点说明:
1、构造函数列表初始化执行顺序与成员变量在类中声明顺序相同,与初始化列表中语句书写先后无关。
2、相对于在构造函数中赋值,初始化列表执行效率更高。

参考链接

C++函数后面加“:”的含义
C++子类的构造函数后面加:冒号的作用


http://www.niftyadmin.cn/n/1339340.html

相关文章

C++ 互斥锁std::mutex的使用

mutex(互斥量)是一个可以处于两态之一的变量:解锁和加锁。这样,只需要一个二进制位表示它,不过实际上,常常使用一个整型量,0表示解锁,而其他所有的值则表示加锁。互斥量使用两个过程。当一个线程…

Spring透过ApplicationListener来触发contextrefreshedevent事件

Spring通过ApplicationListener接口来触发contextrefreshedevent事件在开发时有时候需要在整个应用开始运行时执行一些特定代码,比如初始化环境,准备测试数据、加载一些数据到内存等等。在Spring中可以通过ApplicationListener来实现相关的功能&#xff…

C++函数默认参数(函数传入实参个数比形参个数少)

C函数默认参数定义参数添加顺序注意事项转载链接定义 在C中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可…

期权有哪些坑,你知道吗?

本文为纯原创文章,应朋友邀请而编写。文章花费了笔者大量的精力投入。琢磨着如何行文,怎么样通俗点,提炼出有用的观点来,放在标题中。目标的解决广大求职者的最关心的问题。 转载请注明来源地址。 一、概念理解篇 1、理解A股、B股、C股等 2、…

Django 过滤器 实例

实例&#xff11; safe让Html标签以及一些特殊符号&#xff08;如<&#xff09;生效&#xff0c;下面以例子说明&#xff1a; # value <b>CPT</b># 那么输出的时候&#xff0c;CPT就是加粗的&#xff0c;如果不加safe那么显示出来的就是纯文本<b>CPT<…

requestAnimationFrame,Web中写动画的另一种选择

HTML5/CSS3时代&#xff0c;我们要在web里做动画选择其实已经很多了: 你可以用CSS3的animattionkeyframes; 你也可以用css3的transition; 你还可以用通过在canvas上作图来实现动画&#xff0c;也可以借助jQuery动画相关的API方便地实现; 当然最原始的你还可以使用window.setTim…

C++ 、、 |、|| 、|=、?: 逻辑运算符用法

C &、&& |、|| 与|逻辑运算符用法&与&&|与|||?:参考链接&与&& &&     表示逻辑与的意思&#xff0c;即为and。当运算符两边的表达式的结果都为true时&#xff0c;整个运算结果才为true&#xff0c;否则&#xff0c;只要有一…

麦进斗:magento如何安装子主题

让我们的孩子创造一个主题&#xff0c;我们所有的自定义主题在Magento 2去这里&#xff1a;应用程序/设计/开发/ company_name / theme_name让我们假设&#xff0c;我们公司的名称是公司和我们的主题名称是基本。我们需要创建以下主题目录结构&#xff1a;<app><desig…