详情见: https://www.cnblogs.com/alantu2018/p/8459250.html
总结:
拷贝构造函数被调用的场景:
1. A = B
2. Rect r; Rect r1(r);
3. 直接将对象传入函数
4. 函数直接返回对象。
浅拷贝只拷贝栈上的变量,深拷贝同时要拷贝堆上面的内存。
拷贝构造函数,编译器会默认给你添加的, 所以可以直接写Rect r; Rect r1(r);
调用拷贝构造函数之后, 便不会调用其他构造函数。
https://www.cnblogs.com/intelwisd/p/8531374.html
浅赋值可能导致两个同样的指针指向同一个堆内存, 这样析构时候,会导致内存重复释放。