
class date {
private:
   int day, month, year;
public:

   date(int i = 0, int j = 0, int k = 0) : month(j), day(i), year(k)
   {  cout << "Creating a date!" << endl; }

   date(const date& d) : day(d.day), month(d.month), year(d.year)
   {  cout << "Creating a date by copying!" << endl; }

   ~date()
   {  cout << "Destroying a date!" << endl; }

// Experiment with keeping and deleting the assignment redefinition
   date& operator=(const date& d)
   {  day = d.day; year = d.year; month = d.month;
      cout << "I just performed a Date Assignment ... " << endl;
      return *this; }

   void set(int i, int j, int k)
   {  day = i; month = j; year = k; }

   void get(int& i, int& j, int& k) const
   {  i = day; j = month; k = year; }
};
