重载运算符的函数一般格式如下:
重载运算符 operator 运算符名称(形参表列)
例如,想将“+”用来Complex类(复数类)的加法计算,函数的原型可以:
Complex operator+(Complex &c1,Complex &c2);
operator是关键字,专门用来定义重载运算符的函数的。我们可以把operator+看作函数名,意思是“对运算符+重载”。
#include "stdafx.h"
#include <iostream>
using namespace std;
//复数
class Complex
{
private:
double real;
double imag;
public:
Complex()
{
real=0;
imag=0;
}
Complex(double r,double i)
{
real=r;
imag=i;
}
Complex operator+(Complex &c2);
void display();
};
//把operator+看作函数
Complex Complex::operator+(Complex &c2)
{
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
void Complex::display()
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main(int argc, char* argv[])
{
Complex c1(3,4),c2(5,-10),c3;
c3=c1+c2;
cout<<"c1=";c1.display();
cout<<"c2=";c2.display();
cout<<"c3=";c3.display();
return 0;
}
实现截图:
C++编译系统会将程序中的表达式c1+c2解释为c1.operator+(c2)。。。
- 大小: 13.4 KB
分享到:
相关推荐
成员形式重载是指在类的成员函数中重载运算符,而非成员形式重载是指在类的友元函数中重载运算符。例如,在`ch18_5.cpp`中,我们定义了非成员形式的前增量和后增量运算符: ```cpp friend Increase & operator ++...
在C++编程语言中,函数重载(Overloading)和运算符重载(Overloading)是两种关键的多态性实现方式,而类型转化(Type Conversion)则涉及到数据类型的转换和兼容性问题。这些概念是C++程序员必备的知识点,理解和...
根据提供的实验报告,我们可以深入探讨C++中的运算符重载技术以及其实现细节。运算符重载是C++中的一项重要特性,它允许用户自定义已存在的运算符在用户自定义类型的操作。通过运算符重载,我们可以为自定义类型提供...
在C++中,重载运算符的实现是通过重载流类的成员函数来实现的。例如,std::ostream类提供了一个名为operator的成员函数,该函数可以将数据输出到流中。通过重载该函数,可以使得输出操作变得更加灵活和方便。 在...
4. 重载运算符不能使用默认参数。 运算符重载的语法通常形式为`返回类型 operator@( 参数表 )`,其中`@`代表要重载的运算符。对于类内的运算符重载,有两种主要形式: 1. 非静态成员运算符重载:这种情况下,运算符...
首先,我们要理解C++中的运算符重载。运算符重载允许我们在不同的上下文中为同一个运算符赋予不同的含义,这在处理自定义数据类型如矩阵时非常有用。例如,我们可以通过重载"+"运算符来实现矩阵的相加,重载"-...
成员函数重载运算符通常用于单个对象操作,而友元函数适用于需要两个对象参与的运算。通过这种方式,C++可以提供高度的灵活性和表达性,使得代码更易于阅读和理解。 在`test_operator_overload_member_function`这...
C++单目运算符重载 单目运算符只有一个操作数,如!a,-b,&c,*p,还有最常用的++i和–i等。重载单目运算符的方法与重载双目运算符的方法是类似的。但由于单目运算符只有一个操作数,因此运算符重载函数只有一个参数...
在C++编程中,重载运算符是一种强大的特性,它允许我们为已有的运算符赋予新的含义,以适应特定的数据类型。在这个特定的项目中,我们重载了两个运算符:加法运算符"+"和大于运算符">",用于判断三个边长是否能构成...
在C++编程语言中,运算符重载是一项关键特性,允许我们为自定义类型赋予特定的运算符行为。本实验“C++作业实验-运算符重载”旨在深入理解这一概念,通过Visual Studio 2010开发环境进行实践。在这个实验中,我们将...
### 在C++中如何重载运算符 #### 引言 C++作为一种强大的面向对象编程语言,支持多种高级特性,包括运算符重载。运算符重载允许开发者为自定义类型(如类或结构体)定义特定的运算符行为,这不仅增强了代码的...
### C++中不可重载的运算符及其规则 在C++编程语言中,为了提高代码的灵活性和可读性,提供了运算符重载这一特性。然而,并非所有的运算符都可以被重载。本文将详细介绍那些不可重载的运算符以及自增(`++`)和自减(`...
这个实例将探讨如何通过成员函数和非成员函数两种方式来重载运算符,以及如何结合友元函数来实现特定的操作。首先,让我们深入理解运算符重载的概念。 **运算符重载原理** 运算符重载并不创建新的运算符,而是为已...
详细介绍 C++运算符重载 的PPT 文中部分内容: ...重载下标运算符“[]”的一个优点是可以增加C++中数组检索的安全性 重载下标运算符“[]”时,返回一个int的引用,所以可使重载“[]”用在赋值语句的左边。
友元函数可以访问类的私有和保护成员,使得非成员函数也能重载运算符,这种方式适用于两个操作数都是类的对象的情况。 下面是一些常见的运算符重载示例: 1. 赋值运算符`=` 重载赋值运算符需要考虑深拷贝和浅拷贝...
在C++编程语言中,重载运算符是一种强大的特性,允许我们为已有的运算符赋予新的含义或行为,以适应自定义数据类型。本项目"分数运算器"就是利用这一特性来实现分数的加减乘除等运算,并通过界面提供用户友好的交互...
C++中绝大部分的运算符允许重载,具体规定见表 不能重载的运算符只有5个: . (成员访问运算符) .* (成员指针访问运算符) :: (域运算符) sizeof (长度运算符) ?: (条件运算符) 前两个运算符不能重载是为了保证...
### C++运算符重载详解 #### 一、前言 C++允许用户自定义类或...通过适当地重载运算符,可以使代码更加直观和易于理解,提高程序的可读性和可维护性。在实际开发中,合理地使用运算符重载可以极大地提高编程效率。