Ошибка сегментации, связанная с основным оператором - Использование C ++, SDL - PullRequest
2 голосов
/ 21 марта 2012

Я использую C ++ и SDL для программирования игры, и хотя я не получаю ошибок, когда пытаюсь ее запустить, я получаю ошибку сегментации. Я запустил отладчик gdb, и это то, что он дал мне, когда использовал функцию возврата: «# 0 main () at main.cpp: 10», где 10-я строка - это оператор сразу после открытия блока try. Может кто-нибудь сказать мне, что здесь происходит, я никогда не сталкивался с такой ошибкой раньше.

1 Ответ

1 голос
/ 21 марта 2012

Возможно, вы создаете SDL_Surface s для bgSurface и fgSurface до вызова SDL_Init ...

Вот почему у меня есть вызов SDL_Init в конструкторе класса, сам по себе (и SDL_Quit в конструкторе). Таким образом, вы можете просто сделать Manager частным подклассом этого:

class Manager : private SDLInitializer
{ /* */  }

А в конструкторе:

Manager::Manager() : 
    SDLInitializer(SDL_INIT_VIDEO),
    /* */

И поскольку базовые классы инициализируются перед переменными-членами, все идет хорошо!

...