exitによる終了

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kaiten

exitによる終了

#1

投稿記事 by kaiten » 16年前

お久しぶりです。exitについて不安があるので質問させていただきます。

一般的にexitは使わずにmainなりWinMainなりでreturnするのがいいようなのですがそれだとどうも冗長になってしまう設計だったのでexitの使用を考えました。そこで質問なのですが、exitを使う上で気をつける点を教えてください。
現在、処理はGameクラスに丸投げしています。以下ソース。
class Game
	{
	public:
		~Game();
		static Game& CreateGame()
			{
			static Game game;
			return game;
			}
		
		void Main();
		
		static void End()
			{
			exit(0);
			}
	
	private:
		Game();
	};
--------------------------------------------
#include <windows.h>
#include "Game.h"

Game& game=Game::CreateGame();
int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lPc, int nC)
	{
	game.Main();
	return 0;
	}

たかぎ

Re:exitによる終了

#2

投稿記事 by たかぎ » 16年前

exitを使うと、自動記憶域期間を持つオブジェクトのデストラクタが呼び出されません。
思わぬ不具合につながる恐れがありますので、決してお勧めはしません。

kaiten

Re:exitによる終了

#3

投稿記事 by kaiten » 16年前

やはり使わないほうがよいのですか……
static変数に丸投げしていたので平気かと思ったのですが、設計しなおすことにします。
ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る