c++操作符重载

2017-03-20  本文已影响19人  76577fe9b28b
一. +号操作符重载
1.在类中重载
 // +号操作符重载
    Point operator+(const Point &point);
Point Point::operator+(const Point &point){

     Point po(this->getX() + point.x, this->getY() + point.y);
     
    return po;
}
2.全局函数重载
 // +号操作符重载
   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;
}
二. 前++与后++
 //前++
 Point & operator++();
 //后++, 使用一个占位符来表示后++
 Point & operator++(int);
 //前++
Point & Point::operator++(){

    this->x++;
    this->y++;
    return *this;
}
//后++
Point & Point::operator++(int){

    this->x++;
    this->y++;
    return *this;
}
二. 输出操作符<<重载

注意: 因为方法问题,cout只能在左边,所以<<操作符只能写成全局函数的重载,不能写在类中。

friend const std::ostream & operator<<(const std::ostream &os, const Point &point);
//<<操作符只能写成全局的
const ostream & operator<<(const ostream &os, const Point &point){
    std::cout<<"x="<<point.x<<"   y="<<point.y<<std::endl;   
    return os;
}
上一篇下一篇

猜你喜欢

热点阅读