可能性の重複:
Is it worth setting pointers to NULL in a destructor?NULL
はデストラクタでNULL
に(ヒープメモリを割り当て)のポインタを設定することが無意味ですか?
class SampleClass
{
public:
SampleClass(int Init = 0)
{
Value = new int(Init);
}
~SampleClass(void)
{
delete Value;
Value = NULL; // Is this pointless?
}
int *Value;
};
クラスのテーマについては、explicit
というキーワードはいつ使用しますか?
[デストラクタでNULLへのポインタを設定する価値はありますか?](http://stackoverflow.com/questions/3060006/is-it-worth-setting-pointers-to-null-in-a-デストラクタ)[I **はこれをしないでください、大胆に語るマイケルバリの答え、と100%同意するものとします。**] –
explicit' 'の使用はで説明されている[「C++での明示的なキーワードが何を意味するのでしょうか?」] (http://stackoverflow.com/questions/121162/what-does-the-explicit-keyword-in-c-mean)が同様にリンクジェームズ:) –
おかげで、設定しないことをお勧めすることはできませんそのポインタをNULLにします。もし 'delete'が同じポインタに対して再度呼び出されたならば、呼び出しを無視することで"うまく動作 "し、コードに隠れたバグがあることはわかりません。 – DeadCapacitor