拷贝构造函数的第一个参数必须是自身类类型的引用

拷贝构造函数的定义:如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数

第一个参数必须是自身类类型的引用原因:

拷贝构造函数被用来初始化非引用类类型的参数;

假设其自身参数不是引用类型,则调用永远都不会成功;

void c(int a){}

比如 int a=3;c(a);假设a有拷贝构造函数a::a(int b):a(b){},当调用c函数时,拷贝构造函数被用来初始化形参,可是拷贝构造函数自己的参数也需要调用拷贝构造函数被用来初始化,

如此无限循环,因此构造函数的第一个参数必须是自身类类型

原文地址:https://www.cnblogs.com/likemao/p/8691731.html