复制构造函数

时间:2010-06-02 14:32:38

标签: c++

  

可能重复:
  Why should the copy constructor accept its parameter by reference in C++?

为什么复制构造函数的参数是通过引用传递的?

3 个答案:

答案 0 :(得分:10)

如果按值传递,则需要使用... COPY CONSTRUCTOR进行复制。 : - )

答案 1 :(得分:3)

你不能通过值传递它,因为按值传递意味着制作/传递事物的副本...使传递给copyy构造函数的参数的副本将是递归的,导致堆栈溢出。 / p>

答案 2 :(得分:1)

正如其他人所说,你无法通过价值传递它 - 因为那时你需要一个副本来创建副本!

唯一的另一种选择是通过指针传递,但语法需要address-of,如下所示:

MyClass copy(otherclass);  // by reference
MyClass copy(&otherclass); // by pointer