#include #include #include "FirstClass.h" using std::string; using std::istream; using std::ostream; using std::cout; using std::endl; // using initializer list // order of initialization is the order of declaration in class (not here) FirstClass:: FirstClass() : value(0), num(0), name("") {} FirstClass::FirstClass(int n) : value(-1) { setNum(n); } FirstClass::FirstClass(double d, int n, string s) { value = d; setNum(n); name = s; } FirstClass::FirstClass(const FirstClass & other) { num = other.num; value = other.value; name = other.name; } // Destructor FirstClass::~FirstClass() { cout << "destroying " << name << endl; } ostream & FirstClass::write(ostream & os) const { os << name << " " << num << " " << value; return os; } istream & FirstClass::read(istream & is) { is >> num >> value >> name; return is; } bool FirstClass::setNum(int n) { if (isValid(n)) { num = n; return true; } return false; } double FirstClass::deltaValue(double delta) { double temp = value; value += delta; return temp; }