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

2023-05-16

文章目录

    • 一、现double数据与Complex类型相加,得出double
    • 二、复数与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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐