类和对象中-运算符重载

在C++中,有些成员函数如果我们不去显示定义,编译器会自动生成

 会自动生成的特殊函数:

他们不能定义为全局函数,必须是类成员员函数(特别是拷贝赋值重载)

下面介绍默认生成函数的作用,特点

构造 函数,析构函数,赋值拷贝构造函数特点几乎相同:

构造函数:对于自定义类型,调用其构造函数,对于内置类型,不做处理

自定义类型(class,struct等)/ 内置类型(int, float, string等C++自带类型)

析构函数:同构造函数,自定义对象调用其析构,内置类型不处理

拷贝构造:浅拷贝,会对内置类型也处理,但只是简单memcpy,会导致新旧指针指向同一空间

赋值拷贝函数:浅拷贝,同拷贝构造

什么时候要显示(手动)定义构造 ,析构,赋值拷贝构造函数?

当类为Date(日期)类,没有涉及指针成员时,不用显示定义,使用默认生成即可

当为Stack或List时,要显式定义
 

运算符重载注意事项

运算符重载函数可以显式调用

全局和类中有相同函数时,对象优先调用类中函数/成员

赋值运算符重载

特点

  1. 是默认构造函数之一
  2. 编译器自动生成
  3. 参数必为类引用
  4. 不能全局函数,必为类成员函数(规定,需要记住)

和拷贝构造区别:

拷贝构造函数调用是在对象不存在时,在创建的时候,调用拷贝构造函数,赋值拷贝函数是,对象已经存在了,调用的赋值拷贝函数

//拷贝构造

Cname nobj=obj;

Cname nobj(obj)   //

//赋值拷贝

obj2=obj1

复制拷贝时

返回类型为局部对象引用:错误,引用指向的空间会在出函数后销毁

只有当函数作用域比函数作用域大时,可返回引用类型,如static和new出来的

拷贝重载函数编译器会默认生成

默认复制重载函数作用,功能

什么时候显示写/不写复制重载




         tips:类重载比较操作符

当我们要写一个类中的各种比较运算符时,如Date(日期)类,我们要写大于,小于,等于,大于等于,小于等于......,但其实我们只要实现<和=,就可以通过函数复用来完成其余比较函数

例如,现在我们已经实现了<和==函数,要想实现>函数:

class Date{
	private:
		int _year;
		int _month;
		int _day;
	public:
		Date operator>(Date& obj)
		{
			return !(*this<obj && *this==obj);
		}
};


其他比较操作都可以用类似方法有< 和==实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/553898.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

工作流JBPM流程图说明

文章目录 5☃️ 相关概念6 ☃️流程图说明6.0 ❄️❄️快速上手6.1 ❄️❄️活动Activity / 节点Node6.1.1 start 开始活动6.1.2 end 结束活动6.1.3 task 任务活动6.1.4 decision 判断活动6.1.5 fork/join 分支/聚合活动 6.2 ❄️❄️流转 Transition / 连线 &#xff08;单向箭…

Python相关性分析

分析连续变量之间线性相关程度的强弱&#xff0c;并用适当的统计指标表示出来的过程称为相关分析。 可以直接绘制散点图&#xff0c;或者绘制散点图矩阵&#xff0c;或者计算相关系数来进行相关分析。 相关系数的计算如下所示&#xff1a; 示例数据&#xff1a; 计算百合酱蒸…

云服务器安装Mysql、MariaDB、Redis、tomcat、nginx

前置工作 进入根目录 cd / 都在/usr/local/src文件夹&#xff09; 上传压缩包 rz 压缩包 Mysql 1.下载并安装MySQL官方的 Yum Repository wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum…

lua 光速入门

文章目录 安装注释字符串变量逻辑运算条件判断循环函数Table (表)常用全局函数模块化 首先明确 lua 和 js Python一样是动态解释性语言&#xff0c;需要解释器执行。并且不同于 Python 的强类型与 js 的弱类型&#xff0c;它有点居中&#xff0c;倾向于强类型。 安装 下载解释…

美易官方:人民币国际支付占比升至近5%

随着全球金融市场的不断发展和数字化进程的加速&#xff0c;人民币的国际支付地位逐渐提升&#xff0c;成为备受瞩目的焦点。最近的数据显示&#xff0c;人民币在国际支付中的占比已经升至近5%&#xff0c;自11月以来已成为第四大交易货币。这一变化不仅反映了中国经济的崛起和…

Python 密码学实用指南(全)

原文&#xff1a;zh.annas-archive.org/md5/fe5e9f4d664790ea92fb33d78ca9108d 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 前言 密码学在保护关键系统和敏感信息方面有着悠久而重要的历史。本书将向您展示如何使用 Python 加密、评估、比较和攻击数据。总的来说&…

MDK stm32怎么生成bin文件

第一种 D:\Keil_v5\ARM\ac5.6\bin\fromelf.exe --bin -o ../../Output/atk_f407.bin ../../Output/atk_f407.axf 空格解析 D:\Keil_v5\ARM\ac5.6\bin\fromelf.exe一个空格--bin一个空格-o两个空格../../Output/atk_f407.bin ../../Output/atk_f407.axf &#xff08;注意后…

Rose中UML类图详解及画法

一、UML简介 UML&#xff08;Unified Modeling Language&#xff09;是一种用于软件系统建模的标准化工具&#xff0c;它提供了一套统一的符号和语法&#xff0c;用于描述、设计、构建和交流软件系统的结构和行为。UML广泛应用于软件开发领域&#xff0c;被视为一种通用的建模语…

【C语言】qsort()函数排序及其模拟实现,万物皆可排!

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 1. 函数介绍 2. qsort举例排列整型变量 3. qsort举例排列结构型变量 3.1 按名字排序 3.1.1 srtcmp函数 3.2 按年龄排序 4. qsort函数模拟实现(采用冒泡的…

宝塔要注意的问题

数据库创建访问权限要全部人 反向代理1 打包dist,并不会有反向代理&#xff0c;所以宝塔里面要配置 反向代理2 这种去掉/api为/&#xff0c;上面的并没有去掉 rewrite ^/api/(.*)$ /$1 break;

mysql数据库表的数据显示到前端tableView

首先我们在ui视图设计中引入TableView, 定义一个model QSqlQueryModel *modelnew QSqlQueryModel(ui->tableView);model->setQuery(query);//将查询结果绑定到模型上ui->tableView->setModel(model); 将tableView内容设置成model然后就可以出现数据库的数据。示…

uni.uploadFile上传图片后台接收不到数据

今天遇到一个很奇怪的问题&#xff0c;通过使用uni.uploadFile上传文件时后端接收不到文件&#xff0c;查过很多资料&#xff0c;原来是自定义了header的Content-Type问题。取消即可&#xff0c;另把自定义文件上传的代码贴出来。 分析&#xff1a;当我们加上请求头的时候 不…

一.NODE MCU(ESP8285,ESP8286)开发环境搭建

一.序言: 1.esp8285长什么样? 2.esp8285是什么,能做什么? 通过上面图片,看到上面的芯片,是带有多个阵脚的单片机。实际上,看着该芯片很小,但是却具有完整的wifi无线蓝牙功能,它本身可以运行一个极简的linux小系统,并且该极简的小linux系统具备无线蓝牙功能。。它同…

了解光纤的最大损耗

在电信和数据传输领域&#xff0c;保持最佳的网络性能和可靠性至关重要。 影响网络完整性的关键因素之一是光纤中的信号丢失。信号损耗&#xff0c;也称为衰减损耗或光纤衰减&#xff0c;测量光缆输入和输出之间的光损耗量。本文将深入探讨光纤中的主要损耗&#xff0c;并指导您…

压缩感知的概述梳理(2)

参考文献 An efficient double-image encryption and hiding algorithm using a newly designed chaotic system and parallel compressive sensing 文献内容 梳理结果 列表形式 并行压缩感知核心元素 信号 x 和 s 信号 x: 稀疏信号信号 s: 非稀疏自然信号&#xff0c;在频…

数据库的创建

数据库分类 通过查看对象资源管理器来区分数据库类型 数据库物理文件的组成 : 数据库文件 日志文件 创建一个主数据文件和一个日志文件

数据结构--顺序表,链表,双向链表

数据结构的学习&#xff0c;从浅到深的学习&#xff0c;在了解他们的概念后&#xff0c;当然要明白他们分别是怎么实现的&#xff0c;同时通过对比来了解他们的异同点。 一.数据结构 1.1 什么是数据结构 所谓数据结构&#xff0c;拆开来讲&#xff0c;就是数据和结构。 数据…

n皇后问题-java

本次n皇后问题主要通过dfs&#xff08;深度优先搜索&#xff09;实现&#xff0c;加深对深度优先搜索的理解。 文章目录 前言 一、n皇后问题 二、算法思路 三、使用步骤 1.代码如下 2.读入数 3.代码运行结果 总结 前言 本次n皇后问题主要通过dfs&#xff08;深度优先搜索&#…

部署Hyperledger Fabric测试区块链网络

一. 快速启动区块链测试网络 启动Fabric虚拟机 将 fabric-samples.zip 拷贝进虚拟机 ubzip fabric-samples.zip 解压并重命名为fabric-samples mv fabric-samples-main fabric-samples 拷贝bin和config目录 cd fabric-samples cp ~/fabric/bin bin -r cp ~/fabric/config …

民族运动饮料之父『健力宝』×企企通正式启动SRM项目,打造饮料行业采购数字化应用标杆

近日&#xff0c;为推进采购阳光化、数字化和智能化&#xff0c;提升管理效率与质量&#xff0c;企企通与中国电解质饮料的领军品牌广东健力宝股份有限公司&#xff08;以下简称“健力宝”&#xff09;成功签约并召开项目启动会。健力宝行政副总裁赵总、CIO李总、采购本部总监杨…