简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
1.前言
本篇目的:理解C++之operator=与operator==用法区别。
<1>.在C++中,“operator==” 和 “operator=” 是两个不同的操作符的重载形式。
-
operator==
:用于比较两个对象是否相等的操作符。
它通常在自定义的类中进行重载,以便比较对象的成员变量是否相等。需要注意的是,默认情况下,它执行的是浅层比较,即仅比较对象的指针值。如果你想要深层比较,需要重载该操作符来比较对象的每个成员变量。 -
operator=:``赋值操作符,用于将一个对象的值赋给另一个对象。
它通常在自定义的类中进行重载,以便在对象之间进行赋值操作时执行自定义的赋值逻辑。通过重载赋值操作符,可以确保在对象赋值时进行深层复制,而不仅仅是简单的指针复制。
2.应用实例
<1>.operator==操作符重载实现
class Item {
public:
int value;
bool operator==(const Item& other) const {
return value == other.value; // 使用成员变量进行比较
}
};
int main() {
Item item1;
item1.value = 10;
Item item2;
item2.value = 10;
if(item1 == item2) {
std::cout << "Items are equal" << std::endl;
} else {
std::cout << "Items are not equal" << std::endl;
}
return 0;
}
<2>.operator=操作符重载实现
class Prop {
public:
int value;
Prop& operator=(const Prop& other) {
if (this != &other) {
value = other.value; // 复制成员变量的值
}
return *this;
}
};
int main() {
Prop prop1;
prop1.value = 10;
Prop prop2;
prop2.value = 20;
prop2 = prop1; // 调用operator=函数,将prop1的值赋给prop2
std::cout << "prop2.value: " << prop2.value << std::endl; // 输出:10
return 0;
}