ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [原]使用友元实现操作符重载

[原]使用友元实现操作符重载

原创 Linux操作系统 作者:zuohongyoulan 时间:2008-09-19 17:49:00 0 删除 编辑

      很多重载操作符是一元的,比如说"+", 意味着带的参数只有一个.对于这样的例子, 一个点对象Point, 包含x,y两个成员变量.如果要实现一个Point对象直接加一个值就可以改变x,y两个成员变量的值, 怎么实现呢?
       可以用友元来实现,见下面的例子:

class Point
{
public:
 Point()
 {
 }
 Point(int px,int py)
 {
  x = px;
  y = py;
 }
  Point & operator +(Point &pt);
 
 friend  Point &   operator + (Point &pt,int offset);
public:
 int x,y;
};

 Point & Point::operator +(Point &pt)
{
 Point p;
 p.x = x + pt.x;
 p.y = y + pt.y;
 return p;
}
Point & operator +(Point &pt,int offset)
{
 Point p;
 p.x = offset + pt.x;
 p.y = offset + pt.y;
 return p;
}

int main(int argc, char* argv[])
{
  Point p, p1(1,1),p2(2,2);
 int ffset = 3;
 
 p = p1+p2;
 p = p + offset;
 return 0;
 
}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12925485/viewspace-450393/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-09-18

  • 博文量
    24
  • 访问量
    44059