#include <iostream>
#include <string>
#include "Date.h"

using namespace std;

class Member {
public: 
	Member(string name, int day, int month, int year) : myName(name) { 
		startDate = new Date(day, month, year);
		cout << "Initializing Member" << endl; 
	}
	~Member() { 
		delete startDate; 
		cout << "Destructing Member " << endl;
	}

	Member& Member::operator=(Member &mem) {
		myName = mem.myName;
		delete startDate;
		Date *temp = mem.startDate;
		startDate = new Date(mem.startDate->getDay(), mem.startDate->getMonth(), mem.startDate->getYear());
		return (*this);
	}

	string getName() const { return myName; }
	void setName(string name) { myName = name; }
	Date* getStartDate() const { return startDate; }
	void setDate(Date* date) { 
		if (startDate != NULL) {
			delete startDate;
		}
		startDate = date; 
	}

	void print() const { 
		cout << "Member " << myName << "  started on ";
		if (startDate != NULL) {
			startDate->print();
		} 
	}
private:
	string myName;
	Date *startDate;
};
