深层解析:C++提供默认的赋值操作符operator=而不提供判等操作符operator==的原因
来源:互联网 发布:破解别人的网络摄像头 编辑:程序博客网 时间:2024/06/13 17:59
从编译器角度上来说,二者都很好实现
operator=只要将一个对象的内容的内容逐位复制给另外一个对象即可
operator==只要将两个对象的内容逐位比较即可
但为什么提供opreator=而不提供opeartor==呢?
其原因就是由于“对齐”的存在,对象中间可能存在若干空洞是不被用到的,其值完全是不可知的,若采用默认的operator==,则比较得到的结果是毫无意义的。因此,C++不提供这样无意义的,容易出错的,误导程序员的默认的operator==
另,类型是静态检查的,一个对象中的int数据成员,只有在编译时才关心它的类型。编译完成后,它就是4B的数据,不能得到这4B数据的任何类型信息。一切对这4B数据的使用方式是否正确,是否解释成int,均是编译时的静态类型检查的任务。
- 深层解析:C++提供默认的赋值操作符operator=而不提供判等操作符operator==的原因
- C++ 重载赋值操作符operator=的高级议题
- C++ 操作符重载 operator = 、operator <
- C++ 操作符重载 operator = 、operator <
- 重载赋值操作operator=()
- operator= 复制操作符的意外
- operator* operator-> 操作符的使用
- C++库研究笔记——赋值操作符operator=的正确重载方式(三个准则)
- C++库研究笔记——赋值操作符operator=的正确重载方式(2)
- boost的operator操作符
- Effective C++ 条款11 在赋值操作符operator=中处理“自我赋值”
- c++中不同类之间的赋值(重载运算符= 即operator =)
- 为什么operator=操作符返回引用
- 复制操作符“operator=”注意事项
- [C/C++]_[操作符重载operator type()和operator()的区别]
- 包含动态分配成员的类 应提供拷贝构造函数,并重载"="赋值操作符
- 为什么std::string不提供到const char *的operator?
- 关于operator=的自我赋值问题
- 九种饮食习惯正在伤害你的肾
- Tomcat5.0乱码解决方案
- 80后进来:70后莫对开,每个80后都熟悉的例句!!
- IIS6+asp.net 2.0+HTTP 错误 404 - 文件或目录未找到:您正在搜索的页面可能已经删除、更名或暂时不可用。
- 你不知道但很有用的60个生活知识
- 深层解析:C++提供默认的赋值操作符operator=而不提供判等操作符operator==的原因
- Awk 实例
- 通过设置ime-mode在页面输入控件中关闭输入法
- 学习生活小结 -- W70 D2
- 关于23种设计模式的有趣见解
- 炫姐姐给版友的建议:如何和猎头打交道
- 使用ElementFlow面板显示元素列表
- 白话什么是多线程?
- 决定回到这里来,这里放点技术文章吧。