构造函数

写这篇文章的目的是,巩固一下对构造函数的理解。参考《C++Primer 4》。

1.构造函数可以被重载
…………
2.实参决定使用哪个构造函数
…………
3.构造函数自动执行
…………
4.用于const对象的构造函数
构造函数不能声明为const
5.构造函数初始化式
从概念上讲,构造函数分为两个阶段,(1)初始化阶段 ,(2)计算阶段 ,计算阶段由构造函数函数体中所有语句组成。另外,不管成员是否在构造函数初始化列表中显示初始化,类类型 的数据成员总是在初始化阶段初始化。初始化发生在计算阶段开始之前。
在构造函数初始化列表中没有显示提及的成员,根据变量初始化规则进行初始化。运行该类型的默认构造函数,来初始化类类型的数据成员。内置或符合类型的成员的初始值依赖于对象的作用域:在局部作用域中,这些成员不被初始化,在全局作用域中被初始化为0。
注解:没有默认构造函数的类类型成员,以及不管哪种类型的const或引用类型成员,都必须在构造函数初始化列表中进行初始化。
因为如果没有为类成员提供初始化式,则编译器会隐式的使用成员的默认构造函数。如果那个类没有默认构造函数,则编译器尝试使用默认构造函数将会失败。在这种情况下,为了初始化成员,必须提供初始化式。


6.默认构造函数
只有当一个类没有定义构造函数时,编译器才会自动产生一个默认构造函数。 编译器产生的默认构造函数,也按照与变量初始化相同的规则来初始化成员,与上面的相同。(平时我们所说的默认构造函数,就是无参构造函数)
注解:即使定义了其他的构造函数,也应该定义一个默认的构造函数。
7.派生类的默认构造函数
运行derive构造函数的效果是:首先使用base的默认构造函数初始化base部分。base的构造函数执行完之后,再初始化derive部分,并执行derive的函数体。
8.向基类构造函数传递实参

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值