Cplusplus-binary-operators-overloading

提供:Dev Guides
移動先:案内検索

C ++でオーバーロードする二項演算子

二項演算子は2つの引数を取り、以下は二項演算子の例です。 加算(+)演算子、減算(-)演算子、除算(/)演算子のような2項演算子を頻繁に使用します。

次の例は、加算(+)演算子をオーバーロードする方法を説明しています。 同様に、減算(-)および除算(/)演算子をオーバーロードできます。

#include <iostream>
using namespace std;

class Box {
   double length;     //Length of a box
   double breadth;    //Breadth of a box
   double height;     //Height of a 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;
   }

  //Overload + operator to add two Box objects.
   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;
   }
};

//Main function for the program
int main() {
   Box Box1;               //Declare Box1 of type Box
   Box Box2;               //Declare Box2 of type Box
   Box Box3;               //Declare Box3 of type Box
   double volume = 0.0;    //Store the volume of a box here

  //box 1 specification
   Box1.setLength(6.0);
   Box1.setBreadth(7.0);
   Box1.setHeight(5.0);

  //box 2 specification
   Box2.setLength(12.0);
   Box2.setBreadth(13.0);
   Box2.setHeight(10.0);

  //volume of box 1
   volume = Box1.getVolume();
   cout << "Volume of Box1 : " << volume <<endl;

  //volume of box 2
   volume = Box2.getVolume();
   cout << "Volume of Box2 : " << volume <<endl;

  //Add two object as follows:
   Box3 = Box1 + Box2;

  //volume of box 3
   volume = Box3.getVolume();
   cout << "Volume of Box3 : " << volume <<endl;

   return 0;
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

Volume of Box1 : 210
Volume of Box2 : 1560
Volume of Box3 : 5400