复数类Complex包含实部和虚部两个数据成员,完善程序,使得程序运行正确。
裁判测试程序样例:
#include<iostream>
using namespace std;
// 请将答案写在这里
int main() {
int real, imag;
cin >> real >> imag;
int num;
cin >> num;
Complex c1(real, imag), c2;
c2 = c1 + num;
c2.display();
c2 = num + c1;
c2.display();
return 0;
}
输入样例:
第一行:复数c1的实部和虚部
第二行:输入一个整数num,这个整数将会和c1相加,得到的复数:实部为c1的实部加上num,虚部为c1的虚部
3 2
1
输出样例:
第一行:c1+num得到的复数
第二行:num+c1得到的复数
4, 2
4, 2
class Complex {
private:
int real;
int imag;
public:
// 构造函数
Complex(int r = 0, int i = 0) : real(r), imag(i) {}
// 显示函数
void display() const {
cout << real << ", " << imag << endl;
}
// 重载加法运算符,用于复数 + 整数
Complex operator+(int num) const {
return Complex(real + num, imag);
}
// 友元函数:用于整数 + 复数,因为左操作数是一个整数,不是 Complex 类的成员,所以需要友元函数。
friend Complex operator+(int num, const Complex& c);
};
// 友元函数:重载加法运算符,用于整数 + 复数
Complex operator+(int num, const Complex& c) {
return Complex(c.real + num, c.imag);
}