重载<<运算符 ostream

254 阅读1分钟

初学运算符重载递增运算符时,我们需要先弄清左移运算符的写法。我们需要借助ostream输出流,我们对它的使用大部分是关于左移运算符,它作为某个类的友元函数出现,如果不用左移运算符通常会出现以下错误

invalid operation to binary expression(****)cout<<point; 类似的,就是cout<< 后面跟的是整型和实型等普通类型,因此需要重载。以下是具体操作

#include<iostream>
using namespace std;
class Point{
	friend ostream& operator<<(ostream& out,Point point);
	public:
		Point(){
			x=0;
		}
		Point& operator++(){
			x++;
			return *this;
		}
	private:
		int x;
};
 ostream& operator<<(ostream& out,Point point){
	out<<point.x;
	return out;
}
void test01(){
	Point t1;
	++t1;
	cout<<t1<<endl;
}
int main(){
	test01();
	return 0;
	system("pause");
}

这是对前置++的重载,友元函数需要在类内对左移运算符进行重载声明,在类外初始化