也就是说对于一个值传递,相当于创建一个临时变量d然后和创建变量d3给其赋予d2的值一样,创建的临时变量d也要给其赋值d2一旦进行拷贝,又要调用拷贝构造函数,然后以此进行递归,导致死循环。
而对于编译器自己生成的拷贝构造函数只会进行字节拷贝也就是浅拷贝导致两个变量中的指针指向同一块的空间,可能导致修改其中一个类中的内容,导致另一个类中的内容也相应修改。
也就是说对于一个值传递,相当于创建一个临时变量d然后和创建变量d3给其赋予d2的值一样,创建的临时变量d也要给其赋值d2一旦进行拷贝,又要调用拷贝构造函数,然后以此进行递归,导致死循环。
而对于编译器自己生成的拷贝构造函数只会进行字节拷贝也就是浅拷贝导致两个变量中的指针指向同一块的空间,可能导致修改其中一个类中的内容,导致另一个类中的内容也相应修改。