#include <iostream>
using namespace std;

const int DAYS = 0x08;

class Date
{
protected:
	uint8_t day, month, year;

public:
	Date():day(1), month(1), year(00)  {} // Initialisierungsliste mit konstante Parameterwerten
	// Initialisierungsliste ueber 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
{
public:
    DateString():Date() {}
    DateString(uint8_t _day, uint8_t _month, uint8_t _year): Date(_day, _month, _year) {}

	uint8_t GetDay() { return day;	}
	uint8_t GetNextDay() { return ++day; }	// // Um neue Methode erweitert
};

int main()
{
	DateString date;				// Instanziierung mit Standard Konstruktor und 

	printf("Day: %d ", date.GetDay());	 	// Verwenden der Methode GetDay aus Klasse DateString
	printf("Next Day: %d\n", date.GetNextDay());	 // Verwenden der neuen Methode GetNextDay aus Klasse DateString
  return 0;
}
