重载输入运算符使主函数可以接受复数对象的输入程序
时间: 2024-02-11 21:09:39 浏览: 80
运算符的重载
好的,下面是一个重载输入运算符的示例代码,可以让主函数接受复数对象的输入:
```c++
#include<iostream>
using namespace std;
class Complex {
private:
int real, imag;
public:
Complex(int r = 0, int i =0) {
real = r;
imag = i;
}
// 重载输入运算符
friend istream & operator >> (istream &input, Complex &c) {
cout << "请输入实部和虚部,用空格隔开: ";
input >> c.real >> c.imag;
return input;
}
void print() {
cout << real << " + i" << imag << endl;
}
};
int main() {
Complex c1;
cin >> c1; // 调用重载的输入运算符
c1.print();
return 0;
}
```
在上面的代码中,我们通过 `friend` 关键字声明了一个重载输入运算符 `operator >>`,让它可以访问 `Complex` 类的私有成员 `real` 和 `imag`。在主函数中,我们可以直接使用 `cin` 输入一个复数对象 `c1`,这时就会自动调用我们重载的输入运算符,让用户输入实部和虚部,然后将它们赋值给 `c1` 对象的成员变量 `real` 和 `imag`。最后,我们可以通过 `c1.print()` 打印出这个复数对象的值。
阅读全文