当前位置:   article > 正文

构造函数对成员变量的初始化_构造函数初始化成员变量

构造函数初始化成员变量

   之前我们了解到c++类当中有多个默认成员函数,其中构造函数跟析构函数是会在类实例化对象时自动调用,构造函数会对类成员变量进行初始化,析构函数会对对象的内存空间进行释放,防止出现内存泄漏等问题。

   既然我们知道了构造函数是来对成员变量进行初始化的,我们就来看一下具体的初始化过程以及需要注意的地方。

   我们先来重新认识一下构造函数以及它的特点

  1. 函数名与类名相同。
  2. 类在实例化对象时会自动调用,注意声明一个类指针时,构造函数不会被调用,只有new一个空间时才会调用。
  3. 没有返回值。
  4. 一个类可以有多个构造函数,这些构造函数根据参数的不同会构成重载。

构造函数它的主要作用就是对数据成员进行初始化,一般采用初始化列表的形式进行初始化。

基本格式:

构造函数名(参数列表…):变量名1(初始化值),变量名2(初始化值)

{

函数体

}

注意:

  1. 构造函数在执行时,先执行初始化列表,实现变量的初始化,然后在执行函数体内部的语句。
  2. 成员变量之间可以互相初始化。例如:a(12),b(a)用初始化后的a变量来初始化b。
  3. 成员初始化顺序只与声明的顺序有关,跟初始化列表的顺序无关。

为了加深印象看一下下面的这道题:

可以思考一下上面这个程序最终会输出什么内容?

最终会发现这个程序结果中a的值是一个随机值,程序并没有按照初始化列表当中那样,先初始化变量b然后用变量b的值去初始化a,而是先对a进行初始化,然后再对b进行初始化,也就是说正真的初始化顺序时按照类当中变量声明的顺序进行的,与初始化列表无关。

注意:当类当中有引用和const修饰的变量时一定要进行初始化,否则会报出。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/209069
推荐阅读
相关标签
  

闽ICP备14008679号