Witam, mam problem z tym kodem, ciągle wychodzi mi ten błąd, chodzi o używanie przestrzeni nienależącej do mnie, lecz nie wim o co chodzi, gdyż po testach wyszło, że pojawia się przy próbach wyświetlenia vectora.
Co źle zrobiłem?
Błąd:
Segmentation fault (core dumped)
A oto kod:
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
class Object
{
public:
virtual void draw()=0;
};
class Ground :public Object
{
public:
Ground(){;}
virtual void draw()
{
cout<<'G';
}
};
class Air :public Object
{
public:
Air(){;}
virtual void draw()
{
cout<<'A';
}
};
class Map
{
int x,y;
std::vector<Object*> obj;
public:
Map(int xx,int yy)
{
x=xx;
y=yy;
}
void set()
{
for(int yy=0;yy<y;yy++)
{
for(int xx=0;xx<x;xx++)
{
Ground g1;
Object *wsk = &g1;
obj.push_back(wsk);
}
cout<<endl;
}
}
void draw()
{
for(int i=0;i<obj.size();i++)obj[i]->draw();
}
};
int main()
{
Map map(20,5);
map.set();
map.draw();
return 0;
}