可能重复:
Why should the copy constructor accept its parameter by reference in C++?
为什么复制构造函数的参数是通过引用传递的?
答案 0 :(得分:10)
如果按值传递,则需要使用... COPY CONSTRUCTOR进行复制。 : - )
答案 1 :(得分:3)
你不能通过值传递它,因为按值传递意味着制作/传递事物的副本...使传递给copyy构造函数的参数的副本将是递归的,导致堆栈溢出。 / p>
答案 2 :(得分:1)
正如其他人所说,你无法通过价值传递它 - 因为那时你需要一个副本来创建副本!
唯一的另一种选择是通过指针传递,但语法需要address-of,如下所示:
MyClass copy(otherclass); // by reference
MyClass copy(&otherclass); // by pointer