C++当中允许类对象赋值,这是通过默认的重载赋值运算符实现的,它的原型如下:

Class_name & Class_name::operator=(const Class_name &);
它接受并返回一个指向类对象的引用。
将已有的对象赋给另一个对象时,将会使用重载的赋值运算符:
StringBad headline1("Celery");
StringBad knot;
knot = headline1; // 调用赋值运算符
如果是对象初始化的过程,则不一定会使用赋值运算符,比如:
StringBad metoo = knot;
像是这种情况很难说,因为metoo是一个新建的对象,它可以使用拷贝构造函数。然而,也可以分成两步来处理,先使用拷贝构造函数创建一个临时对象,然后在赋值的时候使用赋值运算符复制到新对象中去也是可以的。
和拷贝构造函数类似,默认赋值运算符的实现也是对成员进行逐个复制。如果成员本身就是累对象,那么会使用这个类的赋值运算符来复制。
赋值运算符的问题在哪里呢?我们还是看下之前StringBad那个例子,
我们看下下面这段代码:
StringBad sb("test");
StringBad sports("Spinach Leaves Bowl for Dollars");
StringBad knot;
knot = sports;
当我们运行的时候就会遇到这样的报错:
报错的原因日志里写得很清楚,我们尝试释放一个没有被分配的内存。
会报错的原因很简单,因为我们执行knot = sports的时候,两个对象内部的字符串指向的是同一个地址。这就导致了析构knot的时候sports对象对应的内容已经不存在了。
解决方案也很简单,就是我们自己重载赋值运算符,保证不会出现简单拷贝的问题。
StringBad & StringBad::operator= (const StringBad & st) {
if (this == &st) return *this;
delete []str;
len = st.len;
str = new char[len+1];
std::strcpy(str, st.str);
return *this;
}
相关推荐:
SEO关键词是什么意思?全面解析SEO关键字的核心作用,华为ai音箱 百度ai音箱
互联网资源的无限潜力:如何利用数字世界为个人和企业创造价值,信阳网站建设正规公司
seo网赚什么意思,网站seo赚钱 ,ai打不开ai
SEO快速排名实例:如何通过实战技巧提升网站排名,快速突破流量瓶颈,安徽ai跑步机企业
ChatGPT360:全方位提升你的工作与生活效率,ai72787
SEO小白必看!从零起步SEO的秘诀,轻松提升网站排名,南京网站运营优化平台
AI网页设计生成-智能化创造无限可能,ai机甲风背景音乐
怎么识别是AI写的文章
怎么用AI润色文章,让你的文稿瞬间高大上
SEO全套秘籍:提升网站流量与排名的终极指南,荣昌手机网站建设
SEO包月服务:助力企业提升网站排名与流量的长期利器,网站建设流程 报读文库
ChatGPT:OpenAI的创新之作-一款颠覆传统的语言模型,ai球衣号
SEO优化的利器:提升网站排名的秘密武器,联想ai7g-3笔记本
AI优化文章:如何利用人工智能提升写作效率和质量
什么是seo手段,seo的具体手段 ,中国ai 企业
ChatGPT显示503:如何应对AI服务不可用的困境?,ai宝贝宝贝
如何下载免费AI软件,让你的工作和生活更智能
AI撰写工具的无限可能,让内容创作更高效、更精彩!
未来写作新模式文章撰写AI如何助力内容创作
什么叫改写-解读“改写”背后的艺术与技巧,网站制作建设模板图片
为什么做seo矩阵项目,为什么做seo矩阵项目不能做 ,怎么用ai写作
SEO这种营销方式,改变你网站流量的秘密武器,佛山网站设计建设
如何用AI改文章,让写作更高效、精准,提升内容质量
360排名优化价格:打造高效网络营销的制胜法宝,ai换脸刘浩存自wei
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,解决您的使用困扰!,ai光晕制作
“标题制造机”:颠覆内容创作的秘密武器,助你轻松打造吸引力十足的标题,景区线上推广用哪些网站
seo链接有什么用,seo外链是什么意思 ,one ai写作
AI人工智能:开发与应用的必备软件推荐
SEO找出网站流量提升的终极策略,带你走向搜索引擎巅峰!,朝阳模板网站建设价格
360ai问答-智能时代的全能助手,未来的智慧生活,ai生成白底
乘风SEO:突破困境,领航网络营销新时代,武汉靠谱的关键词排名
自动写文章AI:高效创作工具,开启写作新纪元
互联网快照:记录数字时代的每个瞬间,全网seo怎么优化内容
如何选择适合你的AI工具?全面解析AI工具哪个好用
ChatGPT登录界面都不显示了?可能是这些原因导致的!,上海小学ai智能课
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,助您畅享无障碍智能对话体验,ai记录人
SEO通过-如何通过SEO优化让你的业务在搜索引擎中脱颖而出,保定网站建设推广专家
OpenAI网站崩溃原因:背后的技术与挑战,千牛Ai智投在哪里找
SEO但是,这些常见误区你真的知道吗?,凤岗网站建设开发
AI免费免登录:轻松体验人工智能的魔力,无需繁琐注册,华为AI音箱2音质如何
SEO考核:如何通过精准的SEO优化提升网站排名与流量,茶艺营销推广方案怎么写
SEO如何做?全方位解析提升网站排名的秘诀,AI翻译好处
seo都有什么意思,seo 啥意思 ,ai园林
seo辅助词选什么,seo助手 ,各车企ai
中外链:打通全球流量的桥梁,提升网站排名与流量的双重保障,行业网站建设思路
GPT-3.5可以免费使用吗?AI未来的无限可能,ai烧猪
什么是seo方法,何为seo ,ai写作神器源码是什么
seo系列什么意思,seo的分类 ,que n ai je
SEO模板:提升网站排名,助你快速抢占搜索引擎流量高地,选择seo职业缺点
seo站内链接有什么作用,seo中网站内链的作用 ,781900ai