类的相关知识点

类中的成员变量的初始化

类的初始化表的初始化顺序是根据成员变量的声明顺序来执行的,而不是按照初始化列表的顺序

如果我们要按初始化列表的顺序来进行初始化,那么我们就得记住这个顺序,以便在析构时决定析构的顺序。所以C++就选择了简单的点的方法,按成员变量出现的顺序来初始化。

使用初始化列表的优点

C++中, 类成员的初始化在初始化列表中完成, 先于构造函数执行

即成员真正的初始化发生在初始化列表中, 而不是构造函数体中

  • 提高效率

假如存在string类型的类成员,在初始化时会调用他的默认构造函数,但如果在构造函数中又对string成员进行了赋值,则相当于又进行了一次string的拷贝构造。

相反,如果放在初始化列表中则只需要调用一次string类的初始化即可

  • 有些时候必须使用初始化列表
  • 给常量类成员变量赋值
  • 给引用类型的成员变量赋值
  • 没有默认构造函数的类类型的成员变量

不使用初始化列表,在创建对象调用构造函数之前会对所有的成员变量进行默认初始化,然后再执行构造函数体里的内容。

这样做的话对于没有默认构造函数和变量在声明时便需要被赋值的类型是不适用的。

初始化列表属于函数声明的一部分(构造函数声明),适合于那些在声明时便需要被赋值的变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值