简介: 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;
}



















