とあるソフト会社の開発手法(コーディングスタイル):第5話 [戯言]
【- 目次 -】
第5話 「ポインタと参照」
こんなコードがありました。
void func(X& x) { (略) } …… X* x = NULL; func(*x);
NULLが入っているポインタ変数に、間接演算子って……
NULLを代入している個所と、間接演算子を使っている場所が離れているなら兎も角(それでもバグである事に違いは無い)、並んで書いてあってコレですか……
なんか、C++なのに、クラスのインスタンスを作ったら、ポインタで保持しなきゃいけないとか思っているっぽいんですよねぇ……。
こんなコードが大量にあるし。
void func() { X* x = new X(); (略) delete x; }
でもって、当然の様に、こんなコードが大量にあるし、
void func() { X* x = new X(); (略) if (error) return; // ← ここでreturnするとメモリリーク (略) delete x; }
ちなみに、通常は次のように書くのですよ。
void func() { X x; (略) }
【- 目次 -】
今日の一冊 | |
|
タグ:伝説のプログラマたち
2009-04-30 09:12
nice!(0)
コメント(0)
トラックバック(0)
コメント 0