本站消息

  出租广告位,需要合作请联系站长

  今日名言-想象你自己对困难作出的反应,不是逃避或绕开它们,而是面对它们,同它们打交道,以一种进取的和明智的方式同它们奋斗 。——马克斯威尔·马尔兹

  今日名言-用谅解、宽恕的目光和心理看人、待人。人就会觉得葱笼的世界里,春意盎然,到处充满温暖。——蔡文甫


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

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

发布于2021-07-24 21:32     阅读(1277)     评论(0)     点赞(17)     收藏(1)


一、现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

原文链接:https://blog.csdn.net/Viewinfinitely/article/details/118256148



所属网站分类: 程序员的那点事

作者:新宫之晨

链接:http://www.pythonpdf.com/blog/article/314/c31d01d00e525232d541/

来源:编程知识网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

17 0
收藏该文
已收藏

评论内容:(最多支持255个字符)