ISO C++ operator+ 重载方法

来源:互联网 发布:淘宝模特照相视频 编辑:程序博客网 时间:2024/06/05 22:35
在Linux下G++ 使用的是ISO C++这与我们在网上找到的很多基于Windows VC的C++在operator操作符重载上有一定不同,通过这几天自己摸索写下Linux ISO C++ operator+操作符重载实现.

在这里我提供了一个实例如下:
    1.我们需要实现类似于:Class A = Class B + int;
                         Class A = Class B + Class C;
                         Class A = int + Class B;这样的功能.
    2.第一和第二种情况比较容易实现,方法和VC下基本一致,可以通过下面的方式实现:
      <类> operator+ (const int) const;
      <类> operator+ (cosnt 类&) const;
    3.第三类情况实现和VC++ 有区别,我是通过下面的方法实现的:
      friend <类> operator+ (const int,const <类>&);
      注意这里friend后的类只能使用传值的方式,不能使用传址或引用的方式,否则会出现参数个数使能是0个或1个的错误.
      在写函数实现部分时需写成
      <类> operator+ (const int value_left,const <类>& value_right){ ... }
      否则会提示这个实现的函数没有在<类>中声明.
      通过这样的重载我们就可以实现第三种情况了,这种情况一样适用于其他双目运算符重载.