C ++ - Polymorphismus und Vektoren, wobei eine abgeleitete Vektorklasse auf eine Basisklasse von Vektoren verwiesen wird
Angenommen, Apple wird von einer Basis-FruitPicker-Klasse abgeleitet, dann gibt es eine ApplePicker-Klasse, die von einer Basis-FruitPicker-Klasse abgeleitet ist.
Die ApplePicker-Klasse hatvector<Apple> appleList
hat die Obstpflückerklasse einen Zeiger auf avector<Fruit>
d.h.vector<fruit>* fruitList
.
Ich muss in der Lage sein, den Vektor auf diesen Zeiger zu setzen, damit abstrakte Methoden in der Obstpflückerklasse ausgeführt werden können (da sie nur die Obstmitglieder betreffen). Aber ich habe Probleme, dies einzustellen, als ich versuchte, dies zu tun:
this->fruitList = &(this->AppleList);
Es gibt mir den Fehlercannot convert to vector<Apple> to vector<Fruit>
. Ich habe versucht, eine statische Umwandlung durchzuführen, und es gab mir den gleichen Fehler. Ich habe etwas Ähnliches wie eine Nicht-Vektor-Basisklasse und eine abgeleitete Klasse gemacht, und es war in Ordnung.
Ich bin neu in C ++ und verwende es auf Android über NDK.
Also ist das, was ich versuche, unmöglich und ich muss einen Vektor von Zeigern wie verwendenvector<Fruit*>
.