深究C++深拷贝/浅拷贝

1、什么是深\浅拷贝

假设现在有一片源内存空间,和一个待分配引用的目标对象内存空间,目的是给目标对象空间分配内存。而定义简而言之,深拷贝会复制源内存空间并重新生成一片内存空间,并将其引用给目标对象,而浅拷贝则正好相反,是直接将源内存空间引用给目标对象内存空间。

2、 何时要用到拷贝

C++中用到拷贝的场景有以下三种:
1、函数参数中以值传递的方式传入时,会将传入的实际参数拷贝一份
2、函数返回中返回了一个局部对象,会将其拷贝一份并返回
3、再给一个对象初始化的时候(不是赋值)会将值拷贝一份。

3、哪里要注意深浅拷贝

之所以这个问题值得深究,肯定是因为如果不注意会引起严重的后果,尤其是在类成员中有指针的时候,比如以下实例:


class String
{
   
 
public:
	const char* c_str()
	{
   
		return _str;
	}
 
	String(const char* str = "")
		:_str(new char[strlen
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值