C++类型转换实现不同类型相加【复数与double类型相加】

一、现double数据与Complex类型相加,得出double

#include <iostream>
using namespace std;

class Complex
{
public:
	Complex()  //定义无参构造函数 
	{
		real=0; 
		imag=0;
	}
	Complex(double r, double i)  //定义带参构造函数重载 
	{
		real=r;
		imag=i; 
	}
	operator double()  //定义类型转换函数 
	{
		return real;
	} 
private:  //定义私有成员函数 
	double real;
	double imag;
};

int main()
{
	Complex c1(3, 4), c2(5, -10), c3;  //实例化三个对象,传入参数 
	double d;
	d= 2.5+c2;  //一个double类型与c2对象相加
	cout << "复数型c1加上double型c2的值为:" << d << endl;
	return 0; 
}

1-1

二、复数与double相加,得出复数

#include <iostream>
using namespace std;

class Complex
{
public:
	Complex()  //定义无参构造函数 
	{
		real=0; 
		imag=0;
	}
	Complex(double r)  //定义一个参数构造函数 
	{
		real=r;
		imag=0; 
	}
	Complex(double r, double i)  //定义实现初始化的带两个参数构造函数重载 
	{
		real=r;
		imag=i; 
	}
	friend Complex operator + (Complex c1, Complex c2);  //声明重载运算符号 + 为友元函数
	void display();  //声明普通成员函数,将数据输出 
private:  //定义私有成员函数 
	double real;
	double imag;
};

//定义重载运算符号 + 的友元函数,传入两个Complex对象 
Complex operator + (Complex c1, Complex c2)
{
	return Complex(c1.real + c2.real, c1.imag + c2.imag);  //返回c1、c2的实部相加,虚部相加的一个Complex类型 
}

//定义普通成员函数,显示 
void Complex::display()
{
	cout << "(" << real << "," << imag << ")" << endl;
}

int main()
{
	Complex c1(3, 4), c2(5, -10), c3;  //实例化三个对象,传入参数 
	c3= c1+2.5;
	cout << "复数型c1加上double型2.5的值为:";
	c3.display(); 
	
	c3= c2+2.5;  //一个double类型与c2对象相加,或者c2+2.5 
	cout << "复数型c2加上double型2.5的值为:";
	c3.display();  //显示出c3的值
	return 0; 
}

2-1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿蒙Next

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值