1、 定义并实现一个复数类complex(带两个实参的构造函数,赋值构造,默认构造),适当添加函数,使得下面的代码能够工作。

该博客展示了如何使用C++定义一个复数类,包括带两个实参的构造函数、赋值构造函数、默认构造函数。博主通过类的方法实现了复数的加法、减法操作,并提供了显示输出复数的函数。代码示例中,创建了复数对象并进行了一系列的数学运算,如实部增加、减少,以及复数相加、相减等。
摘要由CSDN通过智能技术生成
  1. 定义并实现一个复数类complex(带两个实参的构造函数,赋值构造,默认构造),适当添加函数,使得下面的代码能够工作。

int main()

{

    complex  c1(3.4,5.0);

    complex  c2=c1;

    complex  c3;

    c1.add(5.0);  //复数c1的实部增加5.0

    c2.sub(5.0);  //复数c2的实部减少5.0

    c3=c1.add(c2);// 复数c1和c2相加求和

    c3.display(); // 显示输出复数

    c3=c1.sub(c2); // 复数c1和c2相减求差

    c3.display();

    c3=add(c1,c2); // 复数c1和c2相加求和

    c3.display();

c3=10;  //复数c3的实部为10.0,虚部为0.0//类型转换函数

    c3.display();

    return 0;

}

#include<iostream>
#include<stdlib.h>
using namespace std;
class complex	//复数类声明
{
public:	//外部接口
	complex(double r,double i){ real=r; imag=i;cout<<1<<endl; }	//参数化构造函数
	complex() { real=0.0; imag=0.0;cout<<2<<endl; }	//默认构造函数
	complex(complex &c){ real=c.real; imag=c.imag;cout<<3<<endl;  }	//复制构造函数
	complex(double r) { real=r; imag=0.0;cout<<4<<endl;  }//类型转换构造函数   explicit
	void add(double r);
	complex add(complex c);
	void sub(double r);
	complex sub(complex c);
	void display();	//输出复数

	double getreal(){ return real; }
	double getimag(){ return imag; }
	void setreal(double _real){ real = _real; }
	void setimag(double _imag){ imag = _imag; }
private:	//私有数据成员
	double real;	//复数实部
	double imag;	//复数虚部
};
void complex::add(double r)
{
	real+=r;
}
complex complex::add(complex c)
{
	complex result;
	result.real=real+c.real;
	result.imag=imag+c.imag;
	return result;

//	return complex(real+c.real, imag+c.imag);
}
void complex::sub(double r)
{
	real-=r;
}
complex complex::sub(complex c)
{
	complex result;
	result.real=real-c.real;
	result.imag=imag-c.imag;
	return result;

//	return complex(real-c.real, imag-c.imag);
}
	
void complex::display()
{
	cout<<"("<<real<<","<<imag<<")"<<endl;
}
complex add(complex c1,complex c2)
{
	double real,imag;
	complex result;
	real = c1.getreal() + c2.getreal();
	imag = c1.getimag() + c2.getimag();

	result.setreal(real);
	result.setimag(imag);
	return result;

//	return complex(real, imag);

//	return complex(c1.getreal() + c2.getreal(), c1.getimag() + c2.getimag());
}

int main()	//主函数
{
	complex  c1(3.4,5.0);
	complex  c2=c1;
	complex  c3;
	c1.add(5.0);  //复数c1的实部增加5.0
	c2.sub(5.0);  //复数c2的实部减少5.0
	c3=c1.add(c2);// 复数c1和c2相加求和
	c3.display(); // 显示输出复数
	c3=c1.sub(c2); // 复数c1和c2相减求差
	c3.display();
	c3=add(c1,c2); // 复数c1和c2相加求和
	c3.display();
	c3=10;  //复数c3的实部为10.0,虚部为0.0
	c3.display();
	
	system("pause");
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值