Forum: PC-Programmierung "invalid covariant return type" on returning a const reference to a child-list of a graphtemplate


von Miyagi (Gast)


Lesenswert?

Hallo zusammen,

ich habe natürlich google bemüht - doch entweder ist das Konzept hinter 
meinem Problem noch zu hoch für mich oder meine Erkältung macht mich 
dusselig - oder beides

Ich habe eine Graph-Node-Template Klasse, die unter anderem eine Methode 
hat, eine const reference auf ihre Child-List zurück zu geben.
1
template <class T>
2
const list<T*>& Graph_Node<T>::GetChildList()
3
{
4
    return myChilds;
5
}

Deklaration der Liste
1
list<T*> myChilds;

Der Compilefehler dazu ist
1
error: invalid covariant return type for 'const std::__cxx11::list<T*>& Graph_Node<T>::GetChildList() [with T = Graph_App_I]'
2
 const list<T*>& Graph_Node<T>::GetChildList()

Kann mir jemand weiter helfen?

vielen Dank :>

von Yalu X. (yalu) (Moderator)


Lesenswert?

Ist Graph_Node<T> von einer anderen Klasse abgeleitet, in der ebenfals 
eine Funktion GetChildList deklariert ist? Falls ja, wie sieht diese 
Deklaration aus?

von Klaus W. (mfgkw)


Lesenswert?

Um den Fehler zu sehen, fehlt noch etwas Quelltext.

Wahrscheinlich ist die Antwort dann hier zu finden:
https://stackoverflow.com/questions/13232853/invalid-covariant-return-type

von Miyagi (Gast)


Lesenswert?

>Ist Graph_Node<T> von einer anderen Klasse abgeleitet...

Das war es - ich war gestern tatsächlich nicht mehr klar genug, um 
einfach mal meine Vererbungskette durch zu steigen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.