Witajcie. Oto problem:
Mam klasę EngineInit:
class EngineInit
W innym pliku mam klasę Surface, która dziedziczy klasę EngineInit:
class Surface : public EngineInit
Teraz w programie mam "kolizję" tych klas bo:
EngineInit *nInit = new EngineInit(800,600,SDL_SWSURFACE);
Surface *pics = new Surface(); // to jest błąd.
// potrzebuje klasy Surface wiec staram się skombinować cos takiego:
Surface *pics = new EngineInit(800,600,SDL_SWSURFACE); // ale to nie przechodzi ; \
więc poczytałem o rzutowaniu :
Surface *pics = new dynamic_cast<Surface*>(EngineInit(800,600,SDL_SWSURFACE));
// lecz to nadal nie dziala, wywala mi error. Jesli zrobie hierarchicznie tak :
EngineInit *nInit = new Surface(); // dziala.
Teraz moje pytanie.. jak zrzutować abym mógł to stworzyć przez Surface ?
// proszę o połączenie postów :
Czy takie coś jest prawidłowe ? :
EngineInit *nInit = new EngineInit(800,600,SDL_SWSURFACE);
Surface *pics = static_cast<Surface*>(nInit);