构造函数的调用规则

Posted 8号prince

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构造函数的调用规则相关的知识,希望对你有一定的参考价值。

1.当类中没有定义任何一个构造函数(包括拷贝构造函数)时,c++编译器会提供一个默认的无参构造函数和默认拷贝构造函数;

2.当类中定义了拷贝构造函数时,c++编译器不会提供默认的无参构造函数;(拷贝构造函数也是构造函数,它的函数名和默认的无参构造函数是同名的,这时候你必须得自己写一个构造函数来初始化对象)

3.当类中定义了任意的非拷贝构造函数(即有参构造函数或无参构造函数),c++编译器不会提供默认的无参构造函数;

4.默认拷贝构造函数对成员变量简单赋值;

 

结论:1.在定义类时,只要你在类里面写了构造函数(包括拷贝构造函数),c++编译器就不会再给你提供默认的无参构造函数了,你必须用自己写的构造函数去初始化对象;

           2.在定义类时,如果你没写拷贝构造函数,c++编译器能给你提供一个默认的拷贝构造函数。

以上是关于构造函数的调用规则的主要内容,如果未能解决你的问题,请参考以下文章

C++调用父类的构造函数规则

构造函数调用

子类为啥要调用父类的构造函数

子类都会首先调用父类的构造函数吗?

C# 构造函数 定义,特征,声明及调用

Java-构造函数(盲目分析)