2

我是 C++ 新手,我想知道为什么我们需要在 C++ 类的复制构造函数中放入 & .但是为什么我不允许复制对象(忽略内存使用点)?

4

2 回答 2

6

如果您不指定按引用调用,则按值调用:编译器将生成对复制构造函数的调用以传递参数。如果复制构造函数按值获取其参数,则最终会出现无限递归。

于 2013-09-05T18:24:10.283 回答
0

如果我们这样做,ClassA a = b(已经构造了 ClassA),并且 Copy Constructor 的实现为,

ClassA::ClassA(ClassA a) { // 复制你的代码 }

然后,对于这个调用,对于每个 ClassA a = b,复制构造函数将被无限次调用。

于 2013-09-05T18:25:00.427 回答