Polimorfismo e vetores de C ++, apontando uma classe derivada de vetores para uma classe base de vetores
Diga: A Apple é derivada de uma classe básica de frutas, depois há uma classe ApplePicker derivada de uma classe FruitPicker base.
A classe ApplePicker temvector<Apple> appleList
, a classe de selecionador de frutas tem um ponteiro para umvector<Fruit>
isto évector<fruit>* fruitList
.
Eu preciso ser capaz de definir o vetor para esse ponteiro, para métodos abstratos podem ser executados na classe selecionador de frutas (como eles só estão preocupados com os membros da fruta). Mas estou tendo problemas para configurar isso, quando tentei fazer isso:
this->fruitList = &(this->AppleList);
Isso me dá o errocannot convert to vector<Apple> to vector<Fruit>
. Eu tentei elenco estático e me deu o mesmo erro. Eu fiz uma coisa semelhante a uma classe base não-vetorial e classe derivada e estava tudo bem.
Eu sou novo em C ++, e estou usando no Android via NDK.
Então é o que eu estou tentando fazer impossível e eu tenho que usar um vetor de ponteiros comovector<Fruit*>
.