c++基础-对运算符重载函数的两种处理方式(成员函数和友元函数)

要求:
编写一个复数类complex,
友元函数重载运算符 “+”,对两个复数进行加法操作。
成员函数重载复合运算符 “*”,对两个复数进行乘法运算。

思路:

  1. 复数有实部real和虚部imag两个数据成员
  2. +和*均为双目运算符, 两种处理方式的参数个数不一样:运算符重载函数作为类的成员函数时,有一个参数是隐含的
#include<iostream>				
using namespace std;
class Complex {												//复数类
public:
	Complex(double x, double y) :real(x),imag(y) {}
	void dp() {												//输出复数属性的函数
		cout << "real: " << real << " imag:  " << imag<<endl;
	}
	friend Complex operator+(Complex&c1,Complex&c2);		//用友元函数重载运算符 +
	Complex operator*(Complex&c1);							//用类成员函数重载运算符 *
private:
	double real, imag;
};
Complex operator+(Complex&c1, Complex&c2) {    
	return Complex(c1.real + c2.real, c1.imag + c2.imag);
}
Complex Complex::operator*(Complex & c1) {
	return Complex(c1.real*real, c1.imag*imag);
}
int main() {
	Complex c1(3, 4), c2(5, 6), c3 = c1 + c2,c4=c1*c2;
	c3.dp();
	c4.dp();
	return 0;
}

运行结果 ⬇
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值