C++ Oberklassen in eine Unterklasse umwandeln?

...komplette Frage anzeigen

4 Antworten

Was ist Oberklasse, was Unterklasse? Ich vermute, die Unterklasse erbt von Oberklasse, so dass Anzahl der Elemente der Unterklasse > Anzahl der Elemente der Oberklasse?

Hartes Typ-Casting meinLebewesen[0] = (lebewese*)new Tiger[] ist eine sehr gefährliche Lösung, besser C++-Container nehmen.

 

Antwort bewerten Vielen Dank für Deine Bewertung
meinLebewesen[0] = new Tiger();

Links steht ein Objekt vom Typ Lebewesen, rechts ein Zeiger. Wie soll das gehen?

Willst Du es wie im "statischen" Fall? Dann schreibe:

Lebewesen** meinLebewesen = new Lebewesen*[4];
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Lolligerhans
21.04.2017, 16:21

@BlackNuke Was war denn die Fehlernachricht? Ich vermute genau das.

1

Warum nutzt du nicht die Containerklassen aus der Standard Template Library, also zum Beispiel einen vector.

vector< Lebewesen > meinLebewesen;

meinLebewesen.push_back( Tiger() );

Antwort bewerten Vielen Dank für Deine Bewertung

Hilft es, wenn Du public vererbst?

class Tiger: public Lebewesen
{
     ....
}

wenn es ein inaccessible-Fehler war

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?