C ++バイナリ演算子オーバーロード
二項演算子には、次の二項演算子の一例であり、2つのパラメータが必要です。 ( - )、乗算演算子(*)と除算演算子(/)すべてのバイナリ演算子は、我々は通常、プラス演算子(+)、減算演算子を使用します。 プラス(+)演算子のように。
次の例では、オーバーロード演算子(+)を追加する方法を示します。 ( - )と除算演算子(/)同様に、あなたはまた、減算演算子をオーバーロードしてみてくださいすることができます。
#include <iostream> using namespace std; class Box { double length; // 长度 double breadth; // 宽度 double height; // 高度 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; } }; // 程序的主函数 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; }
上記のコードはコンパイルされ、実行されると、次の結果を生成します。
Volume of Box1 : 210 Volume of Box2 : 1560 Volume of Box3 : 5400