候捷c++学习

发布时间 2023-12-09 21:45:28作者: 长大想当太空人

浅拷贝:

 如图所示a指向Hello,b指向World,直接进行b = a的赋值操作,导致b和a指向同一块地方,那么b原来指向的World就会发生内存泄漏,且由于a和b指向同一块地方,改变a也会影响b

深拷贝:

 a指向He,b指向World,想要把b深拷贝给a,分三步走:

1、 清空a原来指向的内存空间

 2、开辟和b同样大小的空间

 

3、将b的内容复制过去

 但是要注意,先得检查在赋值之前,是否存在a=a这样的赋值情况

 

否则:

new三个动作:

分配内存、转型、构造函数 

 delete两个动作:

调用析构函数、释放内存

 成员函数有一个隐藏的参数this

 黄色部分可写可不写,不写编译器自动帮我们加

静态函数只能处理静态数据

 调用静态函数的两种方式:

 静态实现单例

 更好的写法,需要单例的时候就创建