默认情况下,c++编译器会给一个类添加三个函数
(1)默认构造函数(无参,函数体为空)
(2)默认析构函数(无参,函数体为空)
(3)默认拷贝构造函数,对属性进行值拷贝
(4)赋值运算符 operator= ,对属性进行值拷贝
构造函数调用规则如下:
(1)如果用户只定义有参构造函数,c++不在提供默认无参构造,但是会提供默认拷贝构造
(2)如果用户只定义拷贝构造函数,c++不会在提供其他构造函数
示例1:不定义默认构造函数,只定义有参构造函数
1 |
|
运行结果:
1 | Person 的有参构造函数调用。 |
示例二:只定义拷贝构造函数
1 |
|