実装に迷う
さていきなり擬似コードです
void* Hoge::AllocateMemrory(dword size) { if (this->allocator == NULL) { this->allocator = new Allocator(...); } return this->allocator->Allocate(size); }
細かい話は抜きにして、こういうコードってありでしょうか?
つまり
- メンバが初期化されていなかったら、newしてから値を返すという形
気になる点としては
- 一度newされたあとは、チェック自体が無駄である。
うれしい点は
- newする場所をほかに作らなくて良いので、呼び出すほうも、呼び出されるほうも幸せ
私見では、簡単なスクリプトや、おもちゃならぜんぜんあり。
このメソッド自体が何回も呼ばれる場合は微妙なのですが。
OSのなかのコードで、かつそこまで頻繁に呼ばれない場合ありだろうか?