运算符重载

第四章 运算符重载之——运算符重载的概念 1、运算符重载就是给已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时产生不同的行为。运算符重载的目的是使得运算符也能够用来操作对象。 2、C++允许重载大多数运算符,不允许重载的有: 成员访问运算符 . 成员指针访问运算符 .* 、 ->* 域运算符 : : 长度运算符 sizeof 条件运算符 ? : 预处理符 # 用于类运算的运算符通常都要重载, = 默认重载为成员变量的复制 & 默认重载为返回任何类对象的地址 3、运算符重载的实质是编写以运算符为名称的函数,使用 阅读详情

运算符重载

operator+()函数的名称使得可以使用函数表达法和运算符表示符表示法来调用它。编译器将根据操作类的类型来确定如何做:

 int a,b,c;
 TIME A,B,C,D;
 c=a+b;
 C=A+B;
 C=A+B+D+C;
#include<iostream>
using namespace std;
class TIME
{
public:
	TIME();
	TIME(int a,int b=0);
	~TIME();
	void addmin(int t1);
	void addhou(int t2);
	TIME operator+(const TIME& t3)const;
	TIME operator*(double t6)const;
	void show();
private:
	int h;
	int m;
};
TIME TIME::operator*(double t6)const
{
	TIME f;
	long s = h * t6 * 60 + m*t6;
	f.h = s / 60;
	f.m = s %60;
	return f;
}
TIME TIME::operator+(const TIME& t3)const
{
 
	TIME t4;
	t4.m = t3.m + m;
	t4.h = t3.h + m / 60+h;
	t4.m = t4.m % 60;
 
	return t4;
}
 
void TIME::show()
{
	cout << "minutes:" << m << endl << "hours:" << h << endl;
}
void TIME::addmin(int t1)
{
	m = m + t1;
	h = h + m / 60;
	m = m % 60;
}
void TIME::addhou(int t2)
{
	h = h + t2;
}
TIME::TIME()
{
	h = 0;
	m = 0;
 
}
TIME::TIME(int a,int b)
{
	h = a;
	m = b;
}
 
TIME::~TIME()
{
}
int main()
{
	TIME m1;
	TIME m2(2, 30);
	TIME m3;
	TIME m4;
	TIME m5;
	TIME m6;
 
	m1.addmin(68);
	m1.show();
 
	m3 = m2+m1;
	m3.show();
	m4 = m2 + m1 + m1;
	m4.show();
	m5 = m4.operator*(2);
	m5.show();
	m6 = m4 * 2;
	m6.show();
 
	return 0;
}

在这里m4*&2不等于2*m4,下面友元会将。

Ansys Circuit新手必看:IBIS模型导入时,Pin Import和Buffer Import到底怎么选? 本文详细解析了Ansys Circuit中IBIS模型导入时Pin Import与Buffer Import的选择策略,帮助SI/PI工程师根据仿真需求做出正确决策。通过对比两种方式的特性差异和应用场景,提供实用的选择指南和性能优化建议,提升信号完整性仿真效率。 阅读详情

相关推荐

【向量数据库】Milvus向量数据库 ① 从入门到实战

Milvus是专为海量高维向量设计的开源数据库,支持AI搜索、图像识别、推荐系统等场景。相比传统关系型数据库(如PostgreSQL),它更高效处理语义检索、非结构化数据存储,可毫秒级响应亿级向量查询。单机场景下,推荐配置8GB内存/32GB硬盘,支持FAISS/HNSW等索引算法,支持GPU加速。本文涵盖优快云专属部署教程(CentOS脚本/配置调优),提供避坑指南与扩展资源,并对比分析与传统数据库差异。适合算法工程师、AI开发人员快速上手,附官方下载与性能测试技巧,手把手教你搭建高效向量检索系统!

xiezhiyi007的专栏 1587

【C++】返回值是类名和返回值是引用的区别

返回非引用类型:函数的返回值用于初始化在调用函数时创建的临时对象(temporary object),如果返回类型不是引用,在调用函数的地方会将函数返回值复制给临时对象。 在求解表达式的时候,如果需要一个地方存储其运算结果,编译器会创建一个没命名的对象,这就是临时对象。C++程序员通常用temporary这个术语来代替temporary object。 用函数返回值初始化临时对象与用实参初始化形

四月晴 6672

科研ABC - The Results Section(SCI论文写作补充)

1 前言 1.1 IMRD格式 1.2 Results部分意义 1.3 Results部分主要内容 2 Results & Discussion关系 2.1 Results & Discussion部分的搭配方式 2.2 Results & Discussion部分的区分 3 Results部分的结构 3.1 Move 1: Set the Stage 3.1....

洋洋洋2020的blog 1622

运算符重载之友元运算符重载

友元可以参考:https://blog.youkuaiyun.com/aaqian1/article/details/84427884 友元运算符重载函数: 把运算符重载函数定义为某个类的友元函数。 1、定义友元运算符重载函数的语法形式 (1)在类的内部,定义友元运算符重载函数的格式如下: friend 函数类型 operator 运算符(形参表) { 函数体 } (2)友元运算符重载函数也可以在类中声明...

aaqian1的博客 1万+

绕开华为通道,获取解锁码解锁BootLoader

刷机有风险,操作需谨慎,如果因为各种因素导致手机变砖无法开机,本教程概不负责,望悉知 前言 这篇文章的大多内容是根据我自己找的一篇文章《绕开华为通道,获取解锁码解锁BootLoader》来编写的,里面的大部分内容是文章的原内容。下面的都是我参考文章中做了一些小部分的修改,增加了我华为P8手机的一些操作,下面开始讲述我的解锁过程。 因为华为官方在2018年的七八月份吧,关闭了解锁码的申请通道,这...

Martin.Mu `s Special Column 5万+

运放+三极管构建LED恒流驱动电路:原理、设计与调试全解析

在电子工程领域,恒流源是一种能够提供稳定输出电流的电路,其核心原理基于负反馈控制机制。通过将输出电流采样转化为电压信号,并与一个稳定的参考电压进行比较,系统自动调节功率器件的导通状态,从而抵消输入电压波动或负载变化带来的影响,实现电流恒定。这种技术对于驱动LED、激光二极管等电流敏感型器件具有重要价值,能确保亮度、色温的一致性,并延长器件寿命。本文以经典的运放结合三极管方案为例,深入剖析其如何实现精准的电流“钳位”。该方案利用通用运算放大器作为比较器,配合三极管构成调整管,通过采样电阻实时监测电流,形成了一

weixin_42525800的博客 496

C++运算符重载(类内、外重载)

1.概念   运算符的重载,实际是一种特殊的函数重载,必须定义一个函数,并告诉C++编译器,当遇到该运算符时就调用此函数来行使运算符功能。这个函数叫做运算符重载函数(常为类的成员函数)。 2.运算符重载的基本格式    返回值类型 类名::operator重载的运算符(参数表)    {    ……    }    operator是关键字,它与重载的运算符一起构成函数名。 3.运算符重载的两种方法 1.类内重载 #include <iostream> using namespa

u014583317的博客 7万+

LVGL 源码分析大全

LVGL 是一款流行的免费和开源嵌入式图形库,为纯C的轻量级GUI框架,支持framebuffer直接渲染图层,因此LVGL能更容易为 MCU、MPU等显示设备开发漂亮的UI。可视化的 UI 编辑器官方上有推荐使用工具。当然,也可以选择 NXP(恩智浦半导体) 提供的工具。........................

Bigan(安)的博客 1万+

运算符重载之成员运算符重载

成员运算符重载函数 成员运算符重载函数,即把运算符重载函数定义为某个类的成员函数。 1、定义成员运算符重载函数的语法形式 (1)在类的内部,定义成员运算符重载函数的格式如下: 函数类型 operator 运算符(形参表){ 函数体 } (2)成员运算符重载函数也可以在类中声明成员函数的原型,在类外定义。 在类内,声明成员运算符重载函数原型的格式如下: class X{ 函数类型 operat...

aaqian1的博客 4555

2023年五一数学建模 | 第二十届五一数学建模C题:“双碳”目标下低碳建筑研究

2023年五一数学建模 | 第二十届五一数学建模C题:“双碳”目标下低碳建筑研究

前程算法屋的博客 1379

使用 MATLAB/Simulink + Simscape Electrical 来构建一个CCHP微电网与新能源协同运行的模型

随着能源需求的增长和对环境保护要求的提高,冷热电联供(Combined Cooling, Heating and Power, CCHP)系统作为一种高效的分布式能源解决方案,越来越受到关注。CCHP系统通过利用一次能源同时产生电力、制冷和供热,实现了能源的梯级利用,提高了能源使用效率。结合太阳能、风能等可再生能源,可以进一步增强系统的灵活性和环保性。本文将详细介绍如何使用来构建一个CCHP微电网与新能源协同运行的模型,并通过仿真分析其性能表现。本文介绍了如何使用构建一个。

xiaoheshang_123的博客 141

C++——运算符重载

运算符重载:对数据类型已有的运算符重新进行定义赋予另一种功能,以适应不同的数据类型对于内置数据类型,编译器知道如何进行运算int a = 10;int b = 20;//计算机知道如何计算但是如果是两个自定义的类相加计算机就不知道如何计算,因为加号两边不是系统内置的数据结构。

头秃中。。。。。 4097

华为OD机试真题 新系统【查找能被整除的最大整数】

华为OD新系统机试真题【查找能被整除的最大整数】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找能被整除的最大整数】

qq_45776114的博客 673

运算符重载———运算符重载的基本概念

引入运算符重载的目的: 由于C++预定义的运算符,只能用于基本数据类型的运算:整型、实型、字符型、逻辑型,导致对象无法通过运算符进行运算。故引入了运算符重载。 运算符重载: 1:运算符重载,就是对已有的运算符(C++中预定义的运算符)赋予多重的含义,使同一运算符作用于不同类型的数据时导致不同类型的行为。 2:运算符重载的目的是:扩展C++中提供的运算符的适用范围,使之能作用于对象。 3:运算符重载的实质是函数重载,可以重载为普通函数,也可以重载为成员函数 4:把含运算符的表达式转换成对运算符函数的调用。

qq_44923545的博客 7730

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

c++之运算符重载

前言 本篇文章主要写的是关于c++运算符重载的问题,运算符重载是c++中比较重要的概念。本篇文章用了大量的实例来说明c++运算符重载,因此文章的篇幅可能会比较大。 一、什么是运算符重载 在c++中我们都知道有函数重载的概念,在类和对象的设计中还设计到了成员函数重载。同样c++也提供了运算符的重载,所谓重载,就是赋予新的含义。实际上我们在前期的学习过程中已经不知不觉使用了运算符重载,如"<<“和”>>“本来是c++的位移运算符,但是却可以用来输入与输出,这是因为c++系统对”<&

weixin_44974029的博客 3671

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

重载学习——函数重载与运算符重载

一枚小新,有问题欢迎共同探讨~

weixin_62377025的博客 2674

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

函数重载和运算符重载

函数重载和运算符重载,实现了常见的==运算符、=运算符、+、+=运算符,

crawer 1546

【C++】运算符重载

本文讲解了 C++ 运算符重载的概念与用法,包括成员函数重载、友元函数重载、全局函数重载,以及对 ++、--、<<、>> 等特殊运算符的重载方式

weixin_56167571的博客 1690

C++ 运算符重载+赋值运算符重载

当运算符被用于类类型的对象时,C++ 语言允许我们通过运算符重载的形式指定新的含义。C++ 规定类类型对象使用运算符时,必须转换成调⽤对应运算符重载,若没有对应的运算符重载,则会编译报错。运算符重载是具有特殊名字的函数,他的名字是由 operator 和后面要定义的运算符共同构成。和其他函数一样,它也具有其返回类型和参数列表以及函数体。重载运算符函数的参数个数和该运算符作用的运算对象数量一样多。

Jason_from_China的博客 1684

CPP运算符重载

文章目录函数的重载运算符重载运算符重载的作用运算符重载的方式典型运算符的重载转换构造函数类型转换函数 函数的重载 1.定义的重载函数必须具有不同的参数个数,或不同的参数类型。编译系统根据不同的参数去调用不同的重载函数,实现不同的功能。 2、仅返回值不同时,不能定义为重载函数。 运算符重载 函数重载是指完成不同功能的函数可以具有相同的函数名。 C++编译器根据函数的实参确定应该调用哪一个函数。 运算...

SongyangJi 3222

运算符重载学习总结

 实际上我们在学习这一部分内容时,也一直在运用运算符重载技术,例如,对+运算符,可将两个整型数相加,如1+9,也可将两个实型数相加,如2.5+9.6。这时编译系统在内部重载了两种不同数据类型的加法运算,这种重载的实质是函数重载,即int add(int,int)和float add(float,float)。但是编译系统内定的运算符重载形式,只能对系统定义的基本数据类型起作用,对用户自己定义的数据...

heyson20171784的博客 6396

运算符重载——算术运算符重载

一、写在前面 1.本篇涉及内容 虚函数 多态 先期联编与迟后联编 类的杂冗 抽象类 多重继承

k909397116的博客 1501

一文读懂C++运算符重载&运算符重载函数

通过运算符重载,扩大了C++已有运算符的作用,使运算符能用于类对象;使用运算符重载,能使程序易于编写、阅读和维护;运算符被重载后,其原有的功能仍然保留,没有丧失或改变。 二、通过运算符重载函数实现运算符的重载 运算符重载函数的一般形式:注:1)形参列表里可以不止一个参数;如果是对象的话,需要“类名&对象名”的形式 1、不允许创造新的运算符,只能对已有的C++运算符进行重载。2、重载不能改变运算符运算量的个数(即操作数),不能改变运算符的优先级,不能改变运算符的结合性。3、重载运算符的函数不能带

pl0020的博客 3009
上一篇: ## 类对象指针,参数,静态,友元
下一篇: Excel使用
偏爱自由 !
博客等级 码龄6年 12粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值