000
08.07.2004, 20:45 Uhr
~Crazy-X
Gast
|
Hi,
Ich habe hier ein Problem mit unterschiedlichen Konstruktoren beim Vererben:
Folgende Basisklasse: rect<int>(int x, int y, int x2, int y2) |->Davon abzuleitende Klasse: CMenuEntry(int number, int x, int y, int x2, int y2) |-> Davon abzuleitende Klasse: CStartEntry(int number)
Folgendes möchte ich erreichen:
Mit CStartEntry bla(1); möchte ich ein Objekt erzeugen. Die CStartEntry Klasse hat Konstante Werte für x bis y2. Mit der im Konstruktor übergebenen Nummer und der Konstanten Werte soll CStartEntry nun den Konstruktor für CMenuEntry aufrufen. Und CMenuEntry soll dann wiederum den Konstruktor für rect aufrufen.
Mein Versuch:
C++: |
CMenuEntry::CMenuEntry(int setNumber, int x, int y, int x2, int y2) { rect<int>::rect<int>(x, y, x2, y2); number = setNumber; }
CStartEntry::CStartEntry(int setNumber) { CMenuEntry(setNumber, 0, 0, 100, 100); }
|
Wenn ich versuche das zu compilieren bekomme ich folgende Fehler beim Konstruktor von CStartEntry: 'CMenuEntry' : Kein geeigneter Standardkonstruktor verfuegbar.
Füge ich einen Standardkunstruktor hinzu compiliert es zwar, aber das Objekt hat nicht die dem Konstruiktor übergebenen Werte.
Kann man beim Vererben irgendwie unterschiedliche Konstruktoren benutzen, oder muss ich wirklich im CStartEntry die Werte selbst in die Attribute setzen?
TIA Crazy-X |