当前位置: 首页 > news >正文

C++之operator=与operator==用法区别(二百一十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

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的值赋给prop2std::cout << "prop2.value: " << prop2.value << std::endl; // 输出:10return 0;
}
http://www.lryc.cn/news/167547.html

相关文章:

  • 【漏洞复现】WordPress插件wp-file-manager任意文件上传漏洞(CVE-2020-25213)
  • 基于安卓Java试题库在线考试系统uniapp 微信小程序
  • Java入坑之语法糖
  • VUE响应式
  • Godot 和 VScode配置C#环境注意事项
  • 三、Mediasoup进程通信实现的原理
  • 【计算机网络】 TCP——四次挥手
  • 「Java开发指南」在MyEclipse中的Spring开发(二)
  • 策略模式,一种广泛应用于各种情况的设计模式(设计模式与开发实践 P5)
  • 90. 子集 II
  • Intel汇编语言程序设计(第7版)第四章编程练习题答案
  • EDA(Exploratory Data Analysis)探索性数据分析
  • Python中的多媒体处理库有哪些?
  • LeetCode【28. 找出字符串中第一个匹配项的下标】
  • 产业互联网开始从简单的概念,逐渐成为可以落地的存在
  • element-ui tree组件实现在线增删改
  • 华为开源自研AI框架昇思MindSpore应用案例:消噪的Diffusion扩散模型
  • 华为CD32键盘使用教程
  • 第三节:在WORD为应用主窗口下关闭EXCEL的操作(2)
  • Layui + Flask | 弹出层(组件篇)(04)
  • Electron和vue3集成(推荐仅用于开发)
  • Vue.js和TypeScript:如何完美结合
  • 034:vue项目利用qrcodejs2生成二维码示例
  • 执行 git remote add github git@github.com:xxxx/testGit.git时,git内部做了啥?
  • Makefile基础
  • 【PickerView案例08-国旗搭建界面加载数据 Objective-C预言】
  • 2023-09-15力扣每日一题
  • 系列七、Nginx负载均衡配置
  • Python爬虫(二十)_动态爬取影评信息
  • 基于 Flink CDC 高效构建入湖通道