クラス > メンバー関数内でクラスをnewしていないことの確認
TErrorLoggerというクラスを作っている時に疑問が生じました。
TErrorLogger *testError = new TErrorLogger();
とするところを
TErrorLogger *testError;
としていたとします。
このまま
testError->Add()
のようなメンバ関数を呼ぶとエラーになりますが、testError::Add()
内でそれを判別する方法はどういうものがあるでしょうか?
自分が試したのは以下の方法です。環境はC++ Builder XE4です。
void TErrorLogger::Add(){
if (this == NULL) {
return; // error
}
}
上記のような方法は正しいでしょうか?
他のtestError未初期化の判別方法がありましたらご教授ください。