#include <iostream>
using namespace std;
 
const int DAYS = 0x08;
 
class Date
{
protected:	// vorher private!!!
	uint8_t day, month, year;
 
public:
	Date():day(1), month(1), year(00)  {} // Initialisierungsliste mit konstante Parameterwerten
	// Initialisierungsliste über parametrisierten Konstruktor
	Date(uint8_t _day, uint8_t _month, uint8_t _year):day(_day), month(_month), year(_year) {}
 
    uint8_t GetDay();		// Methode
};
 
uint8_t Date::GetDay()
{
    return day;
}
 
class DateString : public Date	// String siehe auch: http://s...content-available-to-author-only...e.net/Home.shtml
{
public:
    DateString():Date() {}
    // DateString():Date(2,3,11) {}  // Alternativ mit neuen Werten --> ausprobieren
    DateString(uint8_t _day, uint8_t _month, uint8_t _year): Date(_day, _month, _year) {}
 
    string GetDayStr() {	
	// string str = to_string(day);
	return to_string(day);
    }
};
 
int main()
{
	DateString date1;			// Instanziierung mit Standard Konstruktor und 
	DateString date2(18,4,15);  		// mit parametrisierten Konstruktor
 
	printf("Day 1: %d\n", date1.GetDay());	// Verwenden der Methode GetDay aus Klasse Date
	printf("Day 2: %d\n", date2.GetDay());
	string str = date2.GetDayStr();
	printf("DayString %s\n", str.c_str());	// in einen C-String konvertieren für printf oder cout verwenden 
  return 0;
}
 
				I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IERBWVMgPSAweDA4OwoKY2xhc3MgRGF0ZQp7CnByb3RlY3RlZDoJLy8gdm9yaGVyIHByaXZhdGUhISEKCXVpbnQ4X3QgZGF5LCBtb250aCwgeWVhcjsKCnB1YmxpYzoKCURhdGUoKTpkYXkoMSksIG1vbnRoKDEpLCB5ZWFyKDAwKSAge30gLy8gSW5pdGlhbGlzaWVydW5nc2xpc3RlIG1pdCBrb25zdGFudGUgUGFyYW1ldGVyd2VydGVuCgkvLyBJbml0aWFsaXNpZXJ1bmdzbGlzdGUgw7xiZXIgcGFyYW1ldHJpc2llcnRlbiBLb25zdHJ1a3RvcgoJRGF0ZSh1aW50OF90IF9kYXksIHVpbnQ4X3QgX21vbnRoLCB1aW50OF90IF95ZWFyKTpkYXkoX2RheSksIG1vbnRoKF9tb250aCksIHllYXIoX3llYXIpIHt9CgogICAgdWludDhfdCBHZXREYXkoKTsJCS8vIE1ldGhvZGUKfTsKCnVpbnQ4X3QgRGF0ZTo6R2V0RGF5KCkKewogICAgcmV0dXJuIGRheTsKfQoKY2xhc3MgRGF0ZVN0cmluZyA6IHB1YmxpYyBEYXRlCS8vIFN0cmluZyBzaWVoZSBhdWNoOiBodHRwOi8vcy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5uZXQvSG9tZS5zaHRtbAp7CnB1YmxpYzoKICAgIERhdGVTdHJpbmcoKTpEYXRlKCkge30KICAgIC8vIERhdGVTdHJpbmcoKTpEYXRlKDIsMywxMSkge30gIC8vIEFsdGVybmF0aXYgbWl0IG5ldWVuIFdlcnRlbiAtLT4gYXVzcHJvYmllcmVuCiAgICBEYXRlU3RyaW5nKHVpbnQ4X3QgX2RheSwgdWludDhfdCBfbW9udGgsIHVpbnQ4X3QgX3llYXIpOiBEYXRlKF9kYXksIF9tb250aCwgX3llYXIpIHt9CiAgICAKICAgIHN0cmluZyBHZXREYXlTdHIoKSB7CQoJLy8gc3RyaW5nIHN0ciA9IHRvX3N0cmluZyhkYXkpOwoJcmV0dXJuIHRvX3N0cmluZyhkYXkpOwogICAgfQp9OwoKaW50IG1haW4oKQp7CglEYXRlU3RyaW5nIGRhdGUxOwkJCS8vIEluc3RhbnppaWVydW5nIG1pdCBTdGFuZGFyZCBLb25zdHJ1a3RvciB1bmQgCglEYXRlU3RyaW5nIGRhdGUyKDE4LDQsMTUpOyAgCQkvLyBtaXQgcGFyYW1ldHJpc2llcnRlbiBLb25zdHJ1a3RvcgoKCXByaW50ZigiRGF5IDE6ICVkXG4iLCBkYXRlMS5HZXREYXkoKSk7CS8vIFZlcndlbmRlbiBkZXIgTWV0aG9kZSBHZXREYXkgYXVzIEtsYXNzZSBEYXRlCglwcmludGYoIkRheSAyOiAlZFxuIiwgZGF0ZTIuR2V0RGF5KCkpOwoJc3RyaW5nIHN0ciA9IGRhdGUyLkdldERheVN0cigpOwoJcHJpbnRmKCJEYXlTdHJpbmcgJXNcbiIsIHN0ci5jX3N0cigpKTsJLy8gaW4gZWluZW4gQy1TdHJpbmcga29udmVydGllcmVuIGbDvHIgcHJpbnRmIG9kZXIgY291dCB2ZXJ3ZW5kZW4gCiAgcmV0dXJuIDA7Cn0K