Polimorfizm i wektory C ++, wskazujące pochodną klasę wektorów na klasę bazową wektorów
Powiedz: Apple wywodzi się z podstawowej klasy Fruit, a następnie klasa ApplePicker pochodzi z podstawowej klasy FruitPicker.
Klasa ApplePicker mavector<Apple> appleList
, klasa selektora Fruit ma wskaźnik do avector<Fruit>
to znaczyvector<fruit>* fruitList
.
Muszę być w stanie ustawić wektor na ten wskaźnik, więc abstrakcyjne metody mogą być uruchamiane w klasie wyboru owoców (ponieważ dotyczą tylko członków owoców). Ale mam problem z ustawieniem tego, gdy próbowałem to zrobić:
this->fruitList = &(this->AppleList);
Daje mi błądcannot convert to vector<Apple> to vector<Fruit>
. Próbowałem statycznej obsady i to dało mi ten sam błąd. Zrobiłem coś podobnego do nie-wektorowej klasy bazowej i klasy pochodnej i było dobrze.
Jestem nowym użytkownikiem C ++ i używam go na Androida przez NDK.
To, co próbuję zrobić, jest niemożliwe i muszę użyć wektora wskaźników, takich jakvector<Fruit*>
.