#include <iostream>
using namespace std;

const int DAYS = 0x08;

class Date
{
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
{
public:
    DateString():Date() {}
    DateString(uint8_t _day, uint8_t _month, uint8_t _year): Date(_day, _month, _year) {}

	int GetDay(int xy) { return 0; }  //  Compiler error: no matching function
};

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());
  return 0;
}
