含指针的类要重写拷贝构造和拷贝赋值函数
深拷贝和浅拷贝
浅拷贝
String a(“bing”);
String b(“bing”);
a = b;
只是改变了一下指针的指向,对象a和对象b的指针都指向它,通过任意一个指针对其作修改,都会影响另一个的调用。这种状况就叫作浅拷贝。
深拷贝
拷贝构造会创建出足够的空间,来放蓝本,比如:”String s2(s1)“意思是说,以s1为蓝本创建出来一个s2;”String s2 = s1;”,创建一个新对象s2,将s1赋值给它,既然s2是新创建出来的,就需要去调用构造函数。
拷贝赋值
如果想把a中的值拷贝到b中去,应该分三步:
第一步:把b中的数据清空;
第二步:在b中开一块儿可以容纳a中要拷贝过去的数据的空间;
第三步:将放在a中的数据拷贝到b中去。那么拷贝赋值函数的设计思路也是如此的:
拷贝赋值函数要检测自我赋值。
I'm so cute. Please give me money.
- Post link: https://github.com/TheBge/TheBge.github.io/2021/03/21/%E5%B8%A6%E6%8C%87%E9%92%88%E7%9A%84%E7%B1%BB%E5%92%8C%E4%B8%8D%E5%B8%A6%E6%8C%87%E9%92%88%E7%9A%84%E7%B1%BB/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub IssuesGitHub Discussions