我正在使用SDL在C ++中制作游戏。我有主要功能,女巫只是要求运行游戏功能。运行游戏功能运行游戏,退出时应返回0。我尝试在每次调用之前和之后打印内容,并且段错误应该在返回0处发生;
functioncall()
{
Loads of SDL and other stuff
SDL_Quit();
gamestatemanager.~Gamestatemanager();
return 0; // This is probably where i get the seg fault
}
最佳答案
如果那是gamestatemanager
的析构函数,则不应显式调用它。
当对象系统清理您的对象时,它将被调用。
如果将其创建为具有以下内容的局部变量:
Gamestatemanager gamestatemanager;
那么当它超出范围时将被清理。如果它是用
new
分配的,则应delete
对其进行清理,这时它将被清理。您可能在这里发现的是,您自己在调用析构函数,然后在对象超出范围时再次被调用。这不太可能结局好:-)