类复制构造不能有类类型的参数

Rob*_*ean 0 c++ class

class test{
     test(test);
     //test(test*);
};
Run Code Online (Sandbox Code Playgroud)

我很好奇为什么 C++ 禁止在构造函数中使用类类型的参数。编译器很难处理吗?

Yuu*_*shi 5

因为它会生成一个递归构造函数。当您按值传递时,它需要在传递参数之前复制构造参数...它调用test(test),它需要...您得到了图片。

您需要通过复制构造函数的引用传递:test(const test& rhs)