声明一个类complex,定义类complex的两个对象cl和c2,对象cl通过构造函数直接指定复数的实部和虚部(类私有数据成员为 double 类型:real和imag)为2.5及37,对象c2通过构造函数直接指定复数的实部和虚部为4.2及6.5; (2)定义友元运算符重载函数,它以 clc2 对象为参数调用该函数时能返回两个复数对象相加操作; (3)定义成员函数 print,调用该函数时,以格式“(real,imag)”输出当前对象的实部和虚部,例如:对象的实部和虚部分别是4.2和6.5,则调用 print 函数输出格式为:(4.2,6.5); (4)编写主程序,计算出复数对象 cl和c2相加结果,并将其结果输出。
时间: 2023-06-09 12:08:46 浏览: 332
面向对象原理与Java实践课程实验-对象和类
好的,我知道了,这是一个关于复数运算的问题,我会根据要求回答你的问题。
下面是代码实现及解析:
```c++
#include <iostream>
using namespace std;
// 定义复数类
class complex{
private:
double real; // 实部
double imag; // 虚部
public:
// 构造函数
complex(double r=0, double i=0):real(r),imag(i){}
// 友元运算符重载函数
friend complex operator +(const complex& cl, const complex& c2);
// 成员函数
void print(){
cout << "(" << real << "," << imag << ")" << endl;
}
};
// 定义友元运算符重载函数
complex operator +(const complex& cl, const complex& c2){
return complex(cl.real+c2.real, cl.imag+c2.imag);
}
int main(){
// 定义复数对象
complex cl(2.5, 37);
complex c2(4.2, 6.5);
// 输出对象的实部和虚部
cl.print();
c2.print();
// 计算复数对象相加结果,并输出
complex result = cl+c2; // 调用友元运算符重载函数来实现相加
result.print();
return 0;
}
```
运行程序,输出结果为:
```
(2.5,37)
(4.2,6.5)
(6.7,43.5)
```
解析:首先我们在主函数中声明了两个复数对象cl和c2,分别通过构造函数直接指定复数的实部和虚部,然后输出两个对象的实部和虚部,接着计算两个对象的和,这里我们实现了一个友元运算符重载函数来实现复数相加操作,并将结果输出。最后,我们得到了复数对象cl和c2相加的结果。
阅读全文