-  1  —运算符重载的要求C ++预定义运算符只能用于基本数据类型的运算:整数,实数,字符,逻辑等,而不能用于对象运算。但是我们有时需要在对象之间使用运算符,因此这时我们必须重载运算符,以便可以将运算符用于对象之间的运算。
例如,在数学中,可以在+,-等上直接操作两个复数。但是,在C ++中,不允许在复数对象上直接使用+或-。
有时希望操作员也可以操作对象。这样,代码更加简洁易懂。
例如:complex_a和complex_b是两个复数对象。要找到两个复数的和,我们希望可以将其直接写为:complex_a + complex_b此时,我们需要重载+运算符。
— 2 —运算符重载的形式运算符重载的本质是函数重载,可以将其作为普通函数或成员函数进行重载。运算符重载的基本形式如下:返回值类型运算符运算符(形式参数列表) ...}这是实现复数对象的+和运算符重载的示例:class Complex //复数类{public://构造函数,如果未传递任何参数,则将实部和虚部初始化为默认为0。
复杂(double r = 0.0,double i = 0.0):m_real(r),m_imag(i){} //重载数运算符号,属于成员函数Complexoperator-(const Complex& c){ //返回一个临时对象return Complex(m_real-c.m_real,m_imag-c.m_imag);} //打印复数void PrintComplex(){cout& lt;& lt; m_real& lt;& lt; “,” & lt;& lt; m_imag& lt;& lt; endl;}& nbsp; & nbsp; & nbsp; & nbsp; //将以+重载的普通函数定义为朋友函数& nbsp; & nbsp; //目的是使friend函数访问对象的私有成员。 & nbsp;朋友Complex运算符+(const Complex& amp; a,const complex& amp; b); & nbsp; & nbsp; private:double m_real; & nbsp; //实数部分double m_imag的值; & nbsp; //虚部的值}; //重载+运算符,属于普通函数,而不是对象的成员函数Complex运算符+(const Complex& amp; a,const Complex& b ){//返回一个临时对象return Complex(a.m_real + b.m_real,a.m_imag + b.m_imag);)int main()(Complex a(2,2); Complex b(1,1);复杂c; c = a + b; //等同于c =运算符+(a,b)c.PrintComplex(); c = ab; //等同于c = a.operator-(b)c.PrintComplex(); return 0;}输出结果:3,31,1从上面的示例中,我们可以知道作为成员函数的重载与普通函数之间的区别:当重载为成员函数时,参数数为运算符数减一。
例如:c = ab;等效于c = a。当operator-(b)作为正态函数重载时,参数的数量即为运算符的数量,例如:c = a + b;& nbsp ;等效于c =运算符+(a,b)在上面的代码中,我定义了ov的普通函数erloaded +运算符作为Complex复数类中的朋友函数,其目的是为了使朋友函数能够访问对象的私有成员,否则它将编译并报告错误。
-  3& nbsp;-加法和减法运算符的返回值和参数列表还有一个值得思考的问题:为什么重载和+运算符的返回类型使用的是Complex对象而不是Complex&放吗?为什么运算符函数重载符号和+符号const复杂的参数列表? c经常引用类型而不是Complex c? //重载运算符,属于成员函数Complex Complex :: operator-(const Complex& c){//返回一个临时对象return Complex(m_real-c.m_real,m_imag-c.m_imag);}首先,让我先谈谈为什么参数表是const Complex& amp; amp;。 c经常引用类型。
首先,如果参数表是公共对象,形式为Complex c,则在输入参数时,将调用默认的赋值(复制)构造函数,从而产生临时对象,这会增加成本,因此请使用引用方法,并同时,为了防止所引用的对象被修改,将其定义为const Complex& amp; amp; amp; amp; amp; amp; amp; amp; amp; quot;。 c常量引用类型。
让我说说为什么返回值是一个普通的Complex对象,因为执行-和+运算符的函数后,需要将一个新对象返回到左值。
公司: 深圳市捷比信实业有限公司
电话: 0755-29796190
邮箱: ys@jepsun.com
产品经理: 汤经理
QQ: 2057469664
地址: 深圳市宝安区翻身路富源大厦1栋7楼

更多资讯
获取最新公司新闻和行业资料。
- 电容器基本单位及符号 制作中需要用到各种各样的器,它们在电路中分别起着不同的作用。与电阻器相似,通常简称其为电容,用字母c表示。顾名思义,电容器就是“储存电荷的容器”。尽管电容器品种繁多,但是它们的基本结构和原理是相同的。两...
- 电阻器基本单位及符号 电阻电阻符号是什么?电阻是什么?我们一步一步的去了解电阻、电阻符号及电阻的其他知识。电阻(Resistance,通常用“R”表示),是一个物理量,在物理学中表示导体对电流阻碍作用的大小。导体的电阻越大,表示导体对电流...
- 电感器基本单位及符号 亨利 (H),电感器和电容器一样,也是一种储能元件,它能把电能转变为磁场能,并在磁场中储存 能量。 电感器用符号L 表示,它的基本单位是亨利 (H),常用毫亨 (mH)为单位。 它经常和电 容器一起工作,构成LC 滤波器、LC 振荡器...
- 钟振与时钟晶振原理深度解析:从基础概念到实际应用 钟振与时钟晶振的基本概念钟振,即钟表振荡器,是电子设备中用于提供精确时间基准的核心组件。而时钟晶振(Clock Crystal Oscillator)则是其中一种高精度、高稳定性的晶体振荡器,广泛应用于计算机、通信设备、嵌入式系统等...
- 运算放大器输出电阻详解:如何评估其带负载能力? 运算放大器输出电阻的重要性运算放大器(Op-Amp)是模拟电路中的核心元件,广泛应用于信号放大、滤波、积分等场景。其中,输出电阻是衡量运放带负载能力的关键参数之一。输出电阻越小,说明运放驱动外部负载的能力越强...
- 深入解析:运算放大器输出电阻与负载匹配的关系 运算放大器输出电阻与负载匹配的工程意义在实际电子系统中,运算放大器不仅需要提供精确的信号增益,还需具备良好的负载驱动能力。输出电阻作为衡量该能力的核心参数,直接影响系统的稳定性和精度。理解其与负载之间...
- 车用运算放大器输出电阻解析:如何提升带负载能力? 车用运算放大器输出电阻的重要性在现代汽车电子系统中,运算放大器(Op-Amp)被广泛应用于传感器信号调理、电源管理、车载通信等关键模块。其中,输出电阻是衡量运算放大器带负载能力的核心参数之一。较低的输出电阻意...
- 运算放大器输出电阻解析:如何影响带负载能力与电路性能 运算放大器输出电阻的重要性及其对带负载能力的影响在模拟电路设计中,运算放大器(Op-Amp)是核心组件之一。其输出电阻(Output Resistance, Ro)是衡量运放驱动负载能力的关键参数。较低的输出电阻意味着运放能够更有效地提...
- 电容击穿的概念 电容器的电介质所承受的电场强度是有限的。当束缚电荷脱离原子或分子的束缚并参与传导时,绝缘性能将受损。这种现象称为电介质击穿。...
- 碳膜电阻器的概念 一种使用碳膜将电流限制在特定水平的碳电阻器称为碳膜电阻器。这些是固定值类型的电阻器,由陶瓷载体设计,周围有一层干净的薄碳膜。在这里,碳膜就像电阻材料一样工作。碳膜电阻器符号看起来像...
- 基于脉冲负载的晶圆电阻测试方法与最大功率负载图设计指南 脉冲负载测试在晶圆质量控制中的重要性在现代半导体产业链中,晶圆作为核心基础材料,其电学性能的稳定性直接决定最终芯片的功能与寿命。传统的直流电阻测量难以反映实际工作环境中的瞬态行为,因此引入脉冲负载测试...
- 电阻器的基本单位 电阻的电路符号是R,这是物理学中的符号,指的是电阻,或作为一个物理量,表示电阻值,即导体对电流阻碍作用的大小。 电阻器在日常生活中通常直接称为电阻。它是一个限流元件。电阻器连接到电路中后,电...
- 电感器基本量值单位 电感是闭合电路的一种属性,一个物理量。当电流通过线圈时,线圈中形成磁场感应,感应磁场将产生感应电流,以抵抗通过线圈的电流。它是一个电路参数,用于描述由于线圈电流的变化而在该线圈或另一线圈中产生的感应电...
- SGM321低功耗运算放大器 SGM321(单)、SGM358(双)和SGM324(四)是低成本的电压反馈放大器。这些器件可以在2.1V至5.5V的单电源下工作,而每个放大器仅消耗60μA的静态电流。它们提供具有宽输入共模电压范围和轨到轨输出电压摆动的轨到轨输入。此功能...
- SGM8249高精度运算放大器圣邦微 单SGM8249-1和双SGM8249-2是高电压、低噪声和高精度运算放大器,可在4.5V至36V单电源或±2.25V至±18V双电源下工作。这些设备提供轨对轨输出操作。SGM8249-1/2提供小于10μV的低偏置电压和低偏置电流。这些特性的结合使SGM8249-1/2成为温度...
- PT100热电阻温度与电阻值对照表(0°C基准0.385) 根据PT100热电阻的标准特性,其电阻值随温度变化而变化,通常基于0°C时电阻为100Ω作为参考。对于给定的温度系数α=0.385Ω/°C(这指的是每度变化的电阻增量),我们可以构建一个简化版的对照表来展示特定温度下对应的电阻值...
- 汽车级电感AEC-Q200认证:保障车载系统稳定运行的关键组件 汽车级电感AEC-Q200认证:保障车载系统稳定运行的关键组件随着电动汽车和智能驾驶系统的普及,车载电感作为电源滤波、信号耦合和能量转换的核心元件,其性能直接影响整车的安全性与稳定性。通过AEC-Q200认证的汽车级电感,...
- MindSphere平台赋能:基于HiFlex与IntelliFET®的智能设备远程运维体系构建 MindSphere平台赋能:基于HiFlex与IntelliFET®的智能设备远程运维体系构建在数字化转型浪潮下,MindSphere作为西门子推出的开放式工业云平台,正推动传统设备向“可感知、可分析、可预测”的智能体演进。当HiFlex时钟产生器与Intelli...
- 汽车级抗浪涌电阻器:保障车载电子系统稳定运行的关键组件 汽车级抗浪涌电阻器的重要性在现代汽车电子系统中,电子控制单元(ECU)、传感器、车载通信模块等设备对电源稳定性要求极高。由于汽车工作环境复杂,易受电压波动、雷击、启动冲击等影响,因此必须采用具备高可靠性的...
- 汽车级耐脉冲电阻器:保障车载电子系统稳定运行的关键元件 汽车级耐脉冲电阻器的重要性在现代智能汽车日益复杂的电子架构中,车载电子系统对元器件的可靠性要求极高。汽车级耐脉冲电阻器作为关键被动元件之一,能够在瞬态电压、雷击、负载突变等极端条件下保持稳定性能,有效...