运算符重载

本文通过三个示例展示了C++中运算符重载的不同实现方式,包括类外定义、友元函数和类内定义。实验旨在掌握多态性和运算符重载的概念,每个例子都实现了复数类的乘法运算。实验结果显示,运算符重载增加了代码的灵活性和易用性,同时也突显了C++的多态特性。
摘要由CSDN通过智能技术生成

实验目的:1.掌握C++语言多态性的基本概念
2.掌握运算符重载函数的声明和定义方法

实验结果如下:
1.类外定义运算符重载函数
在这里插入图片描述
2.友元运算符重载函数
在这里插入图片描述
3.类内定义运算符重载函数
在这里插入图片描述

代码如下:
1.#include
using namespace std;
class Complex{
public:
double real;
double imag;
Complex(double real1=0,double imag1=0)
{
real = real1;
imag = imag1;
}

};
Complex operator*(Complex co1,Complex co2)//类外定义重载函数
{
Complex temp;
temp.real = (co1.realco2.real)-(co1.imagco2.imag);
temp.imag = (co1.imagco2.real+co1.realco2.imag);
return temp;
}
int main()
{
Complex com1(1,2),com2(3,4),total1,total2;
total1 = operator*(com1,com2);
cout<<"total1-real = "<<total1.real<<endl;
cout<<"total1-imag = "<<total1.imag<<endl;

total2 = com1 * com2;
cout<<"total2-real = "<<total2.real<<endl;
cout<<"total2-imag = "<<total2.imag<<endl;

}
2.#include
using namespace std;
class Complex{

double real;  //默认定义为private 
double imag;
public:
	Complex(double real1=0,double imag1=0)
	{
		real = real1;
		imag = imag1;
	}
	void print();
    friend Complex operator*(Complex co1,Complex co2);//定义友元函数

};
void Complex::print()
{
cout<<"total-real = "<<real<<endl;
cout<<"total-imag = "<<imag<<endl;
}
Complex operator*(Complex co1,Complex co2)
{
Complex temp;
temp.real = (co1.realco2.real)-(co1.imagco2.imag);
temp.imag = (co1.imagco2.real+co1.realco2.imag);
return temp;
}
int main()
{
Complex com1(1,2),com2(3,4),total;
total = com1*com2;
total.print();
return 0;
}
3.#include
using namespace std;
class Complex{

double real;  //默认定义为private 
double imag;
public:
	Complex(double real1=0,double imag1=0)
	{
		real = real1;
		imag = imag1;
	}
	void print();
    Complex operator*(Complex c);//类内定义重载函数

};
void Complex::print()
{
cout<<"total-real = "<<real<<endl;
cout<<"total-imag = "<<imag<<endl;
}
Complex Complex::operator*(Complex c)
{
Complex temp;
temp.real = (realc.real)-(imagc.imag);
temp.imag = (imagc.real+realc.imag);
return temp;
}
int main()
{
Complex com1(1,2),com2(3,4),total;
total = com1*com2;
total.print();
return 0;
}

心得:
运算符重载函数充分展示了多态性的特点,使得运算符的运用更加多样性,更加便利。运算符函数重载有多种方式,每种方式都有各自的特点。
类外定义重载函数
友元定义重载函数
类内定义重载函数
可以在不同情况下选择不同的方式重载
本周次实验重新复习了类内 类外 以及友元函数的特点及注意事项,收获颇多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值