运算符重载流输入输出<< >>

流输入输出运算符 >> << 比较简单,C++提供了固定的格式,语法上并不是非常难,你只需要记住 istream 和 ostream 这两个类就可以了。本文使用了友元函数方式来实现。具体实现的代码如下,请注意看返回 istream 和 ostream 引用的原因是为了可以使用连续的>>或<<操作符来输入输出。

#include <iostream>

using namespace std;

class Complex
{
public:
	Complex(float x = 0, float y = 0)
		:_x(x), _y(y) {}

	friend istream& operator>>(istream& is, Complex& another);
	friend ostream& operator<<(ostream& os, Complex& another);

private:
	float _x;
	float _y;
};

istream& operator>>(istream& is, Complex& another)
{
	is >> another._x >> another._y;
	return is;
}

ostream& operator<<(ostream& os, Complex& another)
{
	os << another._x << " " <<  another._y << endl;
	return os;
}

int main(int argc, char* argv[])
{
	Complex c, c2;
	// 考虑连等的情况,实现函数要返回 istream 对象的引用
	cin >> c >> c2;
	cout << c << c2;

	return 0;
}

发表评论