Robię prostą grę w zgadywanki, gdzie mam główną klasę Zwierzeta, która zawiera virtual void get_prompt(); czyli podpowiedź. Po niej dziedziczą inne klasy, które zawierają coraz bardziej szczegółowe podpowiedzi aż do ostatniej klasy np Pingwin. Próbuję w main zrobić vector złożony z klas samych już gatunków zwierząt jak Koliber, Kura etc, ale wyskakują mi błędy. W pliku *.h z klasami zwierząt wszystko jest chyba ok. Błędy wyskakują w main:
undefined reference to 'Koliber::Koliber()' etc
wczesniej próbowałam tak: zwierz.push_back(Koliber()); ale też wyskakiwały błędy. Nie wiem jak to ugryźć.
Drugie pytanie: wiecie może jak zrobić z vector'a klas randoma, który mi będzie losował jedną klase o podanej nazwie?
poniżej fragment main, #include wszystkie mam. Klas mam 20 z samymi gatunkami. Nie wrzucam wszystkich bo błąd się powtarza.
#include <iostream>
#include <string>
#include <vector>
#include <conio.h>
#include <ctime>
//#include <algorithm>
#include "zgadywanka.h"
#include <memory>
using namespace std;
int main(int argc, char* argv[])
{
//tworzenie wektora klasy bazowej
vector<shared_ptr<Zwierzeta>>zwierz;
shared_ptr<Pingwin>(new Pingwin);
shared_ptr<Kruk>(new Kruk);
shared_ptr<Koliber>(new Koliber);
shared_ptr<Kura>(new Kura);
shared_ptr<Gluptak>(new Gluptak);
shared_ptr<Rekin>(new Rekin);
shared_ptr<Pirania>(new Pirania);
shared_ptr<Glonojad>(new Glonojad);
shared_ptr<Karp>(new Karp);
shared_ptr<Sum>(new Sum);
shared_ptr<Wilk>(new Wilk);
shared_ptr<Gnu>(new Gnu);
shared_ptr<Mrowkojad>(new Mrowkojad);
shared_ptr<Kolczatka>(new Kolczatka);
shared_ptr<Slon>(new Slon);
}
z góry dziękuję za pomoc