#include #include using namespace std; // Note: Implement parts (a), (b) & (c) as per the requirements of QUESTION_1. class Mass { private: int m_Tonne; int m_Kilo; int m_Gram; public: Mass(double inMass = 0.0){ m_Tonne = inMass; m_Kilo = (inMass - m_Tonne) * 1000; m_Gram = ((inMass - m_Tonne) * 1000 - m_Kilo) * 1000; } Mass operator-(const Mass &a){ Mass temp; temp.m_Gram = m_Gram - a.m_Gram; temp.m_Kilo = m_Kilo - a.m_Kilo; temp.m_Tonne = m_Tonne - a.m_Tonne; if(temp.m_Tonne > 0){ if(temp.m_Gram < 0){ temp.m_Gram += 1000; temp.m_Kilo--; } if(temp.m_Kilo < 0){ temp.m_Kilo += 1000; temp.m_Tonne--; } } if(temp.m_Tonne < 0){ if(temp.m_Gram > 0){ temp.m_Gram = abs(temp.m_Gram -= 1000); temp.m_Kilo++; } if(temp.m_Kilo > 0){ temp.m_Kilo = abs(temp.m_Kilo -= 1000); temp.m_Tonne++; } } return temp; } friend ostream &operator<<(ostream &out, const Mass &a){ out << a.m_Tonne << " t, " << a.m_Kilo << " kg and " << a.m_Gram << " g"; return out; } }; // Driver program (will not compile until you complete parts (a), (b) & (c) of QUESTION 1. // DO NOT Modify the main() function. int main() { Mass massOne(6.2004); Mass massTwo(4.3659); Mass subMass1, subMass2; subMass1 = massOne - massTwo; subMass2 = massTwo - massOne; cout << "Mass 1 = " << massOne << endl; cout << "Mass 2 = " << massTwo << endl; cout << "Mass 1 - Mass 2 = " << subMass1 << endl; cout << "Mass 2 - Mass 1 = " << subMass2 << endl; return 0; }