c++ 为什么拷贝构造函数必须为引用 发表于 2022-10-13 分类于 C++突击 阅读次数: 本文字数: 250 阅读时长 ≈ 1 分钟 如果拷贝构造函数不是引用的话,将会引发无限制的递归,最终导致栈溢出。 我们知道拷贝函数的缺省形式: 12345class A {A(){};A(const A &tmp) {};~A(){};} 如果拷贝构造函数不为引用,那么将引发无限制的递归最终导致栈溢出。 简单来说就是,如果不是引用,那么在调用的时候,会重新实例化一个对象,在进行赋值,但是实例化这个对象又将调用拷贝构造函数,那么就出现了递归,并且是只要调用就会无限制递归。