c++怎么重载运算符?

如题所述

重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。下面的代码是一个例子:


#include <iostream>
using namespace std;
 
class Box
{
   public:
 
      double getVolume(void)
      {
         return length * breadth * height;
      }
      void setLength( double len )
      {
          length = len;
      }
 
      void setBreadth( double bre )
      {
          breadth = bre;
      }
 
      void setHeight( double hei )
      {
          height = hei;
      }
      // é‡è½½ + è¿ç®—符,用于把两个 Box å¯¹è±¡ç›¸åŠ 
      Box operator+(const Box& b)
      {
         Box box;
         box.length = this->length + b.length;
         box.breadth = this->breadth + b.breadth;
         box.height = this->height + b.height;
         return box;
      }
   private:
      double length;      // é•¿åº¦
      double breadth;     // å®½åº¦
      double height;      // é«˜åº¦
};
// ç¨‹åºçš„主函数
int main( )
{
   Box Box1;                // å£°æ˜Ž Box1,类型为 Box
   Box Box2;                // å£°æ˜Ž Box2,类型为 Box
   Box Box3;                // å£°æ˜Ž Box3,类型为 Box
   double volume = 0.0;     // æŠŠä½“积存储在该变量中
 
   // Box1 è¯¦è¿°
   Box1.setLength(6.0); 
   Box1.setBreadth(7.0); 
   Box1.setHeight(5.0);
 
   // Box2 è¯¦è¿°
   Box2.setLength(12.0); 
   Box2.setBreadth(13.0); 
   Box2.setHeight(10.0);
 
   // Box1 çš„体积
   volume = Box1.getVolume();
   cout << "Volume of Box1 : " << volume <<endl;
 
   // Box2 çš„体积
   volume = Box2.getVolume();
   cout << "Volume of Box2 : " << volume <<endl;
 
   // æŠŠä¸¤ä¸ªå¯¹è±¡ç›¸åŠ ï¼Œå¾—到 Box3
   Box3 = Box1 + Box2;
 
   // Box3 çš„体积
   volume = Box3.getVolume();
   cout << "Volume of Box3 : " << volume <<endl;
 
   return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-21

Complex是一个复数类,含有私有成员int型a和b。两种重载方式如图:

相似回答