一. +号操作符重载
1.在类中重载
- 在 .h声明
// +号操作符重载
Point operator+(const Point &point);
- 在 .cpp文件
Point Point::operator+(const Point &point){
Point po(this->getX() + point.x, this->getY() + point.y);
return po;
}
2.全局函数重载
- 在 .h声明中声明友元函数
// +号操作符重载
friend Point operator+( Point &point1, Point &point2);
- 在函数外面定义全局函数
Point operator+(Point &point1, Point &point2){
Point po(point1.x + point2.x , point1.y + point2.y);
return po;
}
二. 前++与后++
- 在 .h 文件中
//前++
Point & operator++();
//后++, 使用一个占位符来表示后++
Point & operator++(int);
- 在 .cpp中
//前++
Point & Point::operator++(){
this->x++;
this->y++;
return *this;
}
//后++
Point & Point::operator++(int){
this->x++;
this->y++;
return *this;
}
二. 输出操作符<<重载
注意: 因为方法问题,cout只能在左边,所以<<操作符只能写成全局函数的重载,不能写在类中。
- 在 .h中使用友元函数声明
friend const std::ostream & operator<<(const std::ostream &os, const Point &point);
- 在 .cpp 中
//<<操作符只能写成全局的
const ostream & operator<<(const ostream &os, const Point &point){
std::cout<<"x="<<point.x<<" y="<<point.y<<std::endl;
return os;
}
网友评论