class A
{
private:
A(){};
~A(){};
public:
static A* GetInstance( void )
{
static A obj;
return& obj;
}
};
bad
クラスコンストラクターは呼び出しが最初に発生したときにのみ初期化されるため、何かが発生した場合、最初にのみ発生すると想定していましGetInstance
た。C++ の深さを知りませんし、C++ を信頼していません私が現在行っている関数で何度も使用されるこのクラスへのポインター:
A* ptr = A::GetInstance();
if( ptr )
{
ポインターの有効性を確認すると、メソッドは値obj
が格納されているアドレスを返すため、それptr
を指すと思いますが、can't
失敗すると思います。
私は小さなアプリケーションについて話しているのではないことに注意してください。私は現在、数千のクライアントを処理し、クラッシュすることなく数週間開いたままにする必要がある 500,000 行以上の MMO サーバー アプリケーションを開発しています。防御的なプログラミングは最低限必要です。確かに、その有効性を確認せずに使用しても100%安全ですか?ptr