问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++中关于深浅拷贝的区别的一个重载问题

发布网友 发布时间:2022-04-18 07:23

我来回答

2个回答

热心网友 时间:2022-04-18 08:53

深拷贝和浅拷贝,取决于你实现的目标和实现的方法。
比如同是String 类,设计如下:
首先设计一个StringData类,用于保存String的内容,
public class StringData
{
char *data;
private int mRefCount;
public StringData(){mRefCount = 1;}
public StringData(const char*p){//new char 并且copy}
void ref(){mRefCount ++;}
void deRef( if(--mRefCount == 0) delete []data;}
}
然后我以对StringData的引用计数来跟踪,这样多个String可以拥有同一份StringData,而该StringData的引用数等于拥有自己的String对象个数,当所有的String对象都不再引用自己的时候(就是所有String对象都析构了, 字节也会释放分配的字符串数组。
这样就是浅拷贝了。
浅拷贝有利于节省内存,同样内容的字符串比如"Hello world",使用深拷贝,会每个String对象都持有一份,使用浅拷贝,则只有一份在内存中。

热心网友 时间:2022-04-18 10:11

通俗点将深拷贝指的的是复制另外一个对象到自己对象中去,且两者不共享一个内存区,浅拷贝指的是两者共享同一个内存区,STRING(const char *c=NULL); 函数属于类的构造函数,不属于拷贝函数!不知道这么讲你会不会有点理解呢?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? office和WPS等文档软件如何改变文本背景,保护眼睛? C++大神们看过来~~~继承和派生以及深浅拷贝的知识点~~~ 谁能给我18个唯美一点的四字词语(成语 去招标公司投标需要准备哪些资料? 华为手机怎么注册两个 兆新股份价值投资分析 建业股份分析讨论区?建业股份投资价值?建业股份看涨多少? 通威股份的价值分析投资 华为手机怎么弄两个 厚普股份投资价值分析 兆新股份投资价值分析 盐湖股份价值投资分析 盐湖股份价值投资分析报告 华为手机怎样注册第二个? 盐湖股份投资价值分析 百川股份投资价值分析 华为手机怎样开通两个 linux里配置dhcp服务器,如何为多块网卡保留固定地址? 我将1500元人民币存入江西的九江银行,到深圳后可以用九江银行卡去认何ATM机中取钱吗? 如何用微商水印相机复制快手视频 在京东退货所出的运费商家让给支付宝转账安全吗 明明是一部普普通通龙傲天番剧,为何《萌王》能延续我前进的道路? 偏微分方程怎么解 请问二阶偏微分方程组可以解得解析解不? 有什么书可以参考? 非线性偏微分方程的解析解,指的是精确解吗 偏微分方程解析解跟数值解的区别 偏微分方程求解..... 关于二元函数的偏微分方程的解法有哪些?最简单的 这个二阶偏微分方程该怎么解? 求解最简单的偏微分方程 大家帮忙看看这个偏微分方程组如何求解析解和数值解?希望大家给个思路,尤其解析解 关于二元函数的偏微分方程的解法有哪些 偏微分方程的数值解法和差分解法比起解析解法的优势何在 微分方程什么情况下有解析解 学校强制要求学生订购学生奶是违法的吗 楼 里安了对讲门铃,可送奶的箱子钉在楼洞里了,送奶工很早就来了,门锁着,怎么解决,楼洞外面没有地方 关闭Word文档,老弹出这 昨晚睡觉梦见我们那里一个以前有过砍人前科的的人又在小路上砍同一个人,没砍死,最后斧头飞到在大路上的 灵越15Pro+i7标压512G锐炬Xe显卡和i5标压16G+512G+MX450+办公哪个好? 在word中插入页码,一半是罗马数字,一半是数字