初学运算符重载递增运算符时,我们需要先弄清左移运算符的写法。我们需要借助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");
}
这是对前置++的重载,友元函数需要在类内对左移运算符进行重载声明,在类外初始化