Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "CNumber.h"
- #include <iostream>
- #include "const.h"
- using namespace std;
- CNumber::CNumber()
- {
- d_value = new double;
- *d_value = DEFAULT_VALUE_DOUBLE;
- }
- CNumber::CNumber(double d_val)
- {
- d_value = new double;
- *d_value = d_val;
- }
- CNumber::CNumber(const CNumber& obj)
- {
- d_value = new double;
- *d_value = *obj.d_value;
- }
- CNumber::CNumber(CNumber&& obj)
- {
- d_value = obj.d_value;
- obj.d_value = NULL;
- }
- CNumber :: ~CNumber()
- {
- if (d_value != NULL);
- delete d_value;
- }
- void CNumber::vPrint()
- {
- cout << (*d_value) << endl;
- }
- void CNumber :: operator=(CNumber&& obj)
- {
- if (this != &obj)
- {
- if (d_value != NULL) delete d_value;
- d_value = obj.d_value;
- obj.d_value = nullptr;
- }
- }
- void CNumber :: operator= (const CNumber& obj)
- {
- *(d_value) = *(obj.d_value);
- }
- CNumber CNumber :: operator* (const CNumber& obj)
- {
- CNumber c_result((*obj.d_value) * (*this->d_value));
- return c_result;
- }
- CNumber CNumber :: operator* (int d_val)
- {
- CNumber c_result(d_val * (*this->d_value));
- return c_result;
- }
- CNumber CNumber :: operator+ (const CNumber& obj)
- {
- CNumber c_result((*obj.d_value) + (*this->d_value));
- return c_result;
- }
- CNumber CNumber :: operator- (const CNumber& obj)
- {
- CNumber c_result((*obj.d_value) - (*this->d_value));
- return c_result;
- }
- void CNumber :: operator+= (const CNumber& obj)
- {
- *(this->d_value) = *(this->d_value) + (*obj.d_value);
- }
- void CNumber :: operator*= (double d_val)
- {
- *(this->d_value) = *(this->d_value) * d_val;
- }
- void CNumber::vSet(double d_val)
- {
- *d_value = d_val;
- }
- ostream& operator << (ostream& os, const CNumber& dt)
- {
- os << *(dt.d_value);
- return os;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement