首页 热点专区 小学知识 中学知识 出国留学 考研考公
您的当前位置:首页正文

c++操作符重载

来源:要发发知识网
一. +号操作符重载
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;
}
显示全文