看到类的赋值函数中检查自赋值,迷惑了

horicon 2011-09-06 10:41:34
书上说:
注意不要将检查自赋值的if 语句
if(this == &other)
错写成为
if( *this == other)



这两句有什么区别啊,晕了
...全文
75 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luciferisnotsatan 2011-09-06
  • 打赏
  • 举报
回复
if(this == &other)
是否是同一个对象
if( *this == other)
可以是两个对象,但通过==比较,内容是否相同
horicon 2011-09-06
  • 打赏
  • 举报
回复
明白了,第一个是指针值,第二个是对象,听大神们解释完就明白了
jackyjkchen 2011-09-06
  • 打赏
  • 举报
回复
第一个指针比较,当然可以,内置支持

第二个除非你重载了==
turing-complete 2011-09-06
  • 打赏
  • 举报
回复
上面地址比较,下面的估计你一般不会重载 == 所以编译器会报错的 ,如果重载了且重载的语义正确的话,实际上不会影响程序的正确性,只是效率稍逊而已。
downmooner 2011-09-06
  • 打赏
  • 举报
回复
上面的是检查对象是否是同一个,根据指针之来比较。

后面的是错误的写法。 错误到用operator==来比较,这就不好说了
通过本课程学习您可以学习到Dart语言如下知识:第1章 Dart语言概述:Dart语言简介、Dart语言支持平台开发、Flutter为什么选择Dart语言。第2章 开发环境搭建:下载Dart SDK、Windows下安装Dart SDK、macOS下安装Dart SDK、Visual Studio Code开发工具、IntelliJ IDEA开发工具。第3章 完成个Dart程序:动动手写一个HelloWorld、Dart源代码文件组织结构、Visual Studio Code调试Dart代码、IntelliJ IDEA调试Dart代码。第4章 Dart语法基础:标识符、关键字、变量、常量、注释、库。第5章 Dart数据类型:数值类型、字符串、数据类型相互转换、布尔类型和枚举类型第6章 运算符:算术运算符、算术赋值运算符、关系运算符、逻辑运算符、位运算符、条件运算符、类型检查运算符。第7章 控制语句:分支语句、循环语句、跳转语句。第8章 函数函数声明、可选参数、头等函数(first-class function)、匿名函数。第9章 类:类声明、getter和setter访问器、构造函数、静态变量和静态方法、级联符号。第10章 继承与多态:Dart的继承实现、调用父类构造函数、成员变量的覆盖(Override)、方法的覆盖(Override)、多态、混入(Mixins)。第11章 抽象类与接口:抽象类、接口、Dart隐式接口、实现接口。第12章 数据容器:List容器、Set容器、Map容器、泛型。第13章 异常处理:捕获异常、try-on捕获异常、try-catch捕获异常、try-on-catch捕获异常、使用finally代码块、手动抛出异常、自定义异常类。第14章 异步编程:Dart异步处理机制、案例:同步函数实现读取文件、案例:异步函数实现读取文件、Future对象。  

64,661

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧