C++自比较检查
C++ self comparison check
对于赋值运算符,我们检查:if(this == &rhs)
,为什么不检查bool operator==(const MyClass& rhs)
中的自比较呢?
对于赋值,我们希望避免自赋值一堆数据。这也是为了进行比较。如果检查作业是一种很好的做法,那么也应该进行比较。
因为我们通常关联==
来检查数据是否完全相同。this == &something
检查它们是否是指向同一事物的指针。
#include <iostream>
struct A
{
bool operator==(const A& rhs) const { return this == &rhs ; }
int a ;
};
int main() {
A a {2}, b{2};
std::cout << std::boolalpha << (a == b);
return 0;
}
即使作为a.a == b.a
,上述程序的输出也是错误的。
这是样品。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- valgrind-hellgrind与泄漏检查的结果不同
- C++模板来检查友元函数的存在
- 检查输入是否不是整数或数字
- 为什么比较运算符如此快速
- 将较小的向量与较大的向量进行比较,以检查它在较小向量的末尾是否不同
- 使用不同的比较函数对 std::set 进行排序和重复检查
- 在字符串比较中检查变量用法
- 正在检查用户的有效输入并与文本文件进行比较
- C++自比较检查
- 检查并比较是否在C++控制台应用程序中按下了"down arrow"键?
- 无符号整数的类型双关语是否可以通过消除 >= 比较的需要来加快边界检查速度?
- 比较两个整数数组并检查它们是否具有相等的值
- 检查功能比较问题
- 如何比较两个动态数组并检查哪些元素匹配
- 如何比较格式的两个时间戳"Month Date hh:mm:ss"以检查 +ve 或 -ve 值
- 如何在c++中使用循环和数组进行比较和检查
- 是否可以使用比较器函数过滤掉STL多集下界检查的数据
- 检查循环条件是否应计入比较总数
- 与 std::vector 的指针进行比较以检查相等性是否安全