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