形参不能直接是对象原因是防止无限递归:调用复制构造函数时需要传入实参,而在进行形实结合时,若形参是类的对象,需要先为形参开辟一块内存空间,再用实参为形参赋值,此时又需要调用复制构造函数完成该操作,我们可以看出,这是一个无限递归的过程。
形参是引用的原因是:如果传递引用,就没有形参和实参结合的过程,也就避免了第二次调用复制构造函数。
C++复制构造函数形参必须为引用原因
于 2022-07-25 07:58:33 首次发布
形参不能直接是对象原因是防止无限递归:调用复制构造函数时需要传入实参,而在进行形实结合时,若形参是类的对象,需要先为形参开辟一块内存空间,再用实参为形参赋值,此时又需要调用复制构造函数完成该操作,我们可以看出,这是一个无限递归的过程。
形参是引用的原因是:如果传递引用,就没有形参和实参结合的过程,也就避免了第二次调用复制构造函数。