构造函数和赋值函数的重载

来源:互联网 发布:网络信息有限公司骗局 编辑:程序博客网 时间:2024/05/17 03:57

重载构造函数:可以定义多个重载构造函数,其目的在于可以用不同的方式来初始化对象。同样,也可为类重载赋值函数(operator=).


构造函数有三类:默认构造函数、拷贝构造函数和其他带参数的构造函数。

默认构造函数:米有参数(即参数列表为void),或者所有参数都有默认值。

注意:不能同时定义一个无参数的构造函数和一个参数全部有默认值的构造函数,否则会造成二义性。

拷贝构造函数:第一个参数为本类对象的引用、const引用、volatile引用或const volatile引用,并且没有其他参数,或者其他参数都有默认值。

拷贝构造函数的参数必须是同类对象的引用,而不能是对象值。如果允许定义值传递的拷贝构造函数,就会与引用传递的构造函数产生二义性。

提示:如果没有显式地定义默认构造函数却定义了带参数的构造函数,那么后者的存在就会阻止编译器生成前者,于是类就没有默认构造函数。此时如果定义该类型对象就会导致编译错误。

当我们要为类定义多个构造函数时,设法把其中相同任务的代码片段抽取出来并定义为一个非public得成员,然后在每一个构造函数中适当的地方调用它。



原创粉丝点击