Jestem w trakcie projektowania prostej gierki konsolowej.
Wywala błąd "undefined reference to 'vtable for Player'.
Wrzucam kod:
(main.cpp)
#include "postacie.h"
using namespace std;
const int ROZMIAR_PLANSZY = 50;
int main()
{
//deklaracja obiektow i tablicy planszy
char plansza[ROZMIAR_PLANSZY][ROZMIAR_PLANSZY];
Player p;
//wypelnienie planszy wartosciami domyslnymi
for (int i=0; i<ROZMIAR_PLANSZY; i++){
for(int j=0; j<ROZMIAR_PLANSZY; j++){
if(i==p.pozycjaX && j==p.pozycjaY){
plansza[i][j] = p.symbol;
}else plansza[i][j] = '\0';
}
}
//rysowanie planszy
for(int i=0; i<ROZMIAR_PLANSZY+4; i++){
cout<<"=";
}
cout<<endl;
for(int j=0; j<ROZMIAR_PLANSZY; j++){
cout<<"||";
for(int i=0; i<ROZMIAR_PLANSZY; i++){
cout<<plansza[i][j];
}
cout<<"||"<<endl;
}
for(int i=0; i<ROZMIAR_PLANSZY+4; i++){
cout<<"=";
}
cout<<endl;
return 0;
}
(postacie.h)
#include <iostream>
#include <cstdlib>
#include <time.h>
int poz_X;
int poz_Y;
int losujPozycjeX(int a)
{
srand(time(NULL));
a = rand()%50 + 1;
return a;
}
int losujPozycjeY(int a)
{
srand(time(NULL));
a = rand()%50 + 1;
return a;
}
class Postac
{
public:
virtual void zmienPozycje() = 0;
};
class Monster: public Postac
{
int pozycjaX;
int pozycjaY;
char symbol;
public:
Monster(int a,int b,char name='M')
{
pozycjaX=a;
pozycjaY=b;
symbol=name;
}
void zmienPozycje(int a, int b);
void zniszcz(int a, int b, char name);
};
class Player: public Postac
{
public:
int pozycjaX;
int pozycjaY;
int zycia;
char symbol;
Player(int a=losujPozycjeX(poz_X),int b=losujPozycjeY(poz_Y), int c=3, char s='P')
{
pozycjaX=a;
pozycjaY=b;
zycia=c;
symbol=s;
}
void zmienPozycje();
void smierc(int a, int b, char c, char d, int e);
};
Gierka narazie jest w fazie budowania :p