在使用Operator=的时候,我们必要注意的事情

1,让Operator返回*this的类型
比如 String& operator=( const String& s) 
固然我们可以返回任何类型,Void是一个没有错的选择,可是如许就没有能使用赋值操作链了
比如
int a,b,c,d;
我们可以如许赋值
a=b=c=d=10;
它更正确的赋值方法应该是 (a=(b=(c=(d=10))))
那么在定义Operator=的时候我们也喜欢定义的类能只用赋值操作链。
2, 尽量返回operator=左边的值
3, 在定义继承类的Operator=的时候,必然要调用调用父类的Operator=,如许没有会呈现子类的变量被赋值,而父类没有被赋值的情况
调用的方法如下
Class A
{
public:
A& operator=( const A& a)
{...};
}
Class B : Public A
{
public:
B& operator=( const B& b)
{
A::operator=(b);
...
}
}
我们也应该同样的调用拷贝组织函数
Class A
{
public:
A( const A& a)
{...};
}
Class B : Public A
{
public:
B( const B& b) : A(b)
{
...
}
}

在定义operator=的时候,可能呈现必要拷贝的正好是自己, 而C++在赋值的时候会将要赋值的变量先清空,如许就可能造成严重的后果,所有,预先判定要拷贝的是没有是本身是很好的风俗
最后要注意的是,有些时候我们没有喜欢Operator=被使用,比如
double arr1[10];
double arr2[10];
arr1 = arr2;
如许的话,我们只要提供Operator的申明而没有定义他,问题就解决了
Array& operator=(ccctv5在线直播onst Array& rhs);

C++ Operator=的一些小细节相关推荐

  1. 如何用C语言改变宏定义的大小,C语言中宏定义使用的小细节

    C语言中宏定义使用的小细节 #pragma#pragma 预处理指令详解 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#p ...

  2. mysql被拖垮_说几个拖垮系统的小细节!

    本文首发于个人微信公众号<andyqian>,期待你的关注! 前言 有好几天没有更新了,期间确实比较忙些,以至于周末也没休息.在这期间,感触还是蛮深的.现在碎片化的想法等整理好后,再以文章 ...

  3. final关键字的这8个小细节,你get到几个?

    前言 大家好,我是狂聊君. 今天来聊 final 关键字,因为最近在看的几本书都讲到了 final 关键字,发现好多小细节自己都忽视了,抽空总结了一下,分享给大家. 正文 final关键字是一个常用的 ...

  4. 网站优化有什么值得注意的小细节吗?

    网站优化的目的就是让网站关键词达到首页,从而为网站带来更多的流量,促使网站达到更好的营销效果,那么对于关键词上首页有什么技巧,需要完善哪些细节呢?下面就跟大家一起分享一下. 一.挖掘更精准的关键词 对 ...

  5. ASP.NET MVC 自定义路由中几个需要注意的小细节

    本文主要记录在ASP.NET MVC自定义路由时,一个需要注意的参数设置小细节. 举例来说,就是在访问 http://localhost/Home/About/arg1/arg2/arg3 这样的自定 ...

  6. 学长的求职经验 记录【就业创业信息网、求职流程、求职小细节】

    目录 1.就业创业信息网 2.求职流程 3.求职小细节 4.毕业设计 1.就业创业信息网 郑州轻工业大学 就业创业信息网:http://job.zzuli.edu.cn/   郑州大学 就业创业信息网 ...

  7. Linux小细节-1

    Linux小细节 1.启动过程 系统启动-内核自检-linux对应程序-加载/ext/rc.local-用户密码-系统配置文件 注:shell无法实现对没有驱动的硬件控制,需要用C语言为硬件写驱动也可 ...

  8. Swift里计数相关的小细节

    Swift里对于字符串这些引入了index型,相对其他语言而言字符操作更安全了,但是问题就是一不注意搞错范围就会有各种离奇的bug. 在讲主题前,先说个小细节. Swift里非常严密的定义了一大堆字符 ...

  9. 学习Java,容易被你忽略的小细节(2)

    昨天心情真的太糟糕了,写完<学习Java,值得注意你注意的问题(1)>之后,迎来些许的支持以后就是一片片的谴责.我的主页上涌现出许许多多Java方面的牛人,谴责我水平太低,写的问题太初级. ...

最新文章

  1. 为什么LINUX不需要碎片整理
  2. python统计并输出文件的行数_python实用统计文件行数 类似wc命令
  3. 二维数组||考试成绩统计: 案例描述:有三名同学(张三,李四,王五),在一次考试中的成绩分别如下表,请分别输出三名同学的总成绩
  4. day36 03-Hibernate检索方式:排序、参数绑定、投影查询
  5. rect函数_R函数不会写,quot;抄quot;总会吧!
  6. java treeset比较,java中TreeSet的两种排序比较的方式
  7. php如何让B链接在当前页面打,javascript - 如何实现点击链接 A 弹出窗口 X,点击链接 B 继续在弹出窗口 X (刷新)打开?...
  8. 和get redis_Springboot2连接redis哨兵模式
  9. Logistic回归及梯度上升算法
  10. 有关计算机的未来想象作文,电脑的想象作文
  11. 软件测试 | 试用期总结万能模板
  12. [人工智能-深度学习-23]:卷积神经网络CNN - 卷积核的本质是多维输入的神经元
  13. 计算机中人民币数字格式,数字转人民币金额大写
  14. 微信开发工具tabBar中的list 图片为啥加载不出来?
  15. 你对Java集合了解多少?
  16. 这世上,真有人会陪你手握屠龙刀,杀得生活措手不及!
  17. 信息系统项目管理师 - 项目立项管理
  18. C语言基础——数据输入输出
  19. 【Javascript】【DOM】ready和onLoad区别
  20. 维克森林大学计算机科学专业好不好,维克森林大学计算机科学系

热门文章

  1. 电子增稳云台_无人机拍摄,电子图像增稳到底靠不靠谱?
  2. 判断一个整数是否为素数算法
  3. mysql查询Sending data慢耗时长
  4. 小明酱的暑期求职纪【version 2.0】
  5. 在wind7中运行启动hadoop出现错误 java.lang.UnsatisfiedLinkError
  6. OpenGL_Qt学习笔记之_07(闪烁的星星)
  7. 魅族android10答案,根据ANDROID 10的魅族手机FLYME 8.1已公布:下列是达标机器设备的目录...
  8. php 让百度蜘蛛抓取403,百度蜘蛛抓取不存在目录 对应的解决方法
  9. 上传文件时提示系统找不到文件
  10. 索罗斯的投资哲学:交易就像在泡沫和崩盘中间的钢丝上行走