社区
C++ 语言
帖子详情
看到类的赋值函数中检查自赋值,迷惑了
horicon
2011-09-06 10:41:34
书上说:
注意不要将检查自赋值的if 语句
if(this == &other)
错写成为
if( *this == other)
这两句有什么区别啊,晕了
...全文
75
5
打赏
收藏
看到类的赋值函数中检查自赋值,迷惑了
书上说: 注意不要将检查自赋值的if 语句 if(this == &other) 错写成为 if( *this == other) 这两句有什么区别啊,晕了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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==来比较,这就不好说了
Flutter编程指南之Dart语言:移动开发语言
通过本课程学习您可以学习到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对象。
C++ 重载运算符“=”检测自
赋值
重载
赋值
运算符
赋值
运算符可能是最容易令人
迷惑
的一个,所以,重载它必须十分的小心。 1. 值运算符仅能重载为成员
函数
。 C++不允许
赋值
运算符被重载为全局形式,这是因为如果可以写出全局形式的
赋值
运算符
函数
的话,我们可以写出这样的
函数
: iint operator=(int a, integer b); 从而出现这样无法无天的语句: integer a(3);
C++ 禁用复制构造
函数
和
赋值
运算符
Google的C++风格指南
中
3.3节有如下规定: 可拷贝类型和可移动类型 总述 如果你的类型需要, 就让它们支持拷贝 / 移动. 否则, 就把隐式产生的拷贝和移动
函数
禁用. 定义 可拷贝类型允许对象在初始化时得到来自相同类型的另一对象的值, 或在
赋值
时被赋予相同类型的另一对象的值, 同时不改变源对象的值. 对于用户定义的类型, 拷贝操作一般通过拷贝构造
函数
与拷贝
赋值
操作符定义. str...
Cstring类的相关
函数
CString类相关
函数
: CString类 一、常用成员
函数
1.int GetLength( ) const; 说明:获取CString类对象包含字符串的长度(字符数)。 2.BOOL IsEmpty( ) const; 说明:测试CString类对象包含的字符串是否为空。 3.void Empty( ); 说明:使CString类对象包含的字符串为空字符串。 4.TCHAR
CString类相应
函数
转自:未知 CString类 一、常用成员
函数
1.int GetLength( ) const; 说明:获取CString类对象包含字符串的长度(字符数)。 2.BOOL IsEmpty( ) const; 说明:测试CString类对象包含的字符串是否为空。 3.void Empty( ); 说明:使CString类对象包含的字符串为空字符串。 4.TCHAR GetAt
C++ 语言
64,661
社区成员
250,488
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章