From d6052a5a27470a8389c2ffc08aa8fd8d8cc3f672 Mon Sep 17 00:00:00 2001 From: Eivind Kvedalen Date: Sun, 27 Mar 2016 01:29:25 +0100 Subject: [PATCH] Quantity: Added -= and += operators. --- src/Base/Quantity.cpp | 21 +++++++++++++++++++++ src/Base/Quantity.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/src/Base/Quantity.cpp b/src/Base/Quantity.cpp index 4bb599c5e..18206c096 100644 --- a/src/Base/Quantity.cpp +++ b/src/Base/Quantity.cpp @@ -113,6 +113,17 @@ Quantity Quantity::operator +(const Quantity &p) const throw Base::Exception("Quantity::operator +(): Unit mismatch in plus operation"); return Quantity(this->_Value + p._Value,this->_Unit); } + +Quantity& Quantity::operator +=(const Quantity &p) +{ + if(this->_Unit != p._Unit) + throw Base::Exception("Quantity::operator +=(): Unit mismatch in plus operation"); + + _Value += p._Value; + + return *this; +} + Quantity Quantity::operator -(const Quantity &p) const { if(this->_Unit != p._Unit) @@ -120,6 +131,16 @@ Quantity Quantity::operator -(const Quantity &p) const return Quantity(this->_Value - p._Value,this->_Unit); } +Quantity& Quantity::operator -=(const Quantity &p) +{ + if(this->_Unit != p._Unit) + throw Base::Exception("Quantity::operator -=(): Unit mismatch in minus operation"); + + _Value -= p._Value; + + return *this; +} + Quantity Quantity::operator -(void) const { return Quantity(-(this->_Value),this->_Unit); diff --git a/src/Base/Quantity.h b/src/Base/Quantity.h index 4c4edacd8..fd722437e 100644 --- a/src/Base/Quantity.h +++ b/src/Base/Quantity.h @@ -53,7 +53,9 @@ public: //@{ Quantity operator *(const Quantity &p) const; Quantity operator +(const Quantity &p) const; + Quantity& operator +=(const Quantity &p); Quantity operator -(const Quantity &p) const; + Quantity& operator -=(const Quantity &p); Quantity operator -(void) const; Quantity operator /(const Quantity &p) const; bool operator ==(const Quantity&) const;