[過去ログ] C/C++ゲーム製作総合スレッド Part1 (1001レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
978
(2): 2012/10/22(月)02:24 ID:GibO9cqH(1/4) AAS
deleteなんて自分で書くものじゃないし
デストラクタもなるべく書かないほうが良い
987: 2012/10/22(月)19:30 ID:GibO9cqH(2/4) AAS
deleteを自分で書くな

std::unique_ptrを使え
ノーコストのスマートポインタだ
スコープから抜けるときに自動的にdeleterを実行してくれる

std::unique_ptrが使えない場面では仕方ないのでstd::shared_ptrを使え
多態が必要なときはstd::shared_ptrじゃないとダメだった気がする

デストラクタを書くのはスマートポインタで自動的に解放できないリソースを扱うクラスのときだけだ
省6
990: 2012/10/22(月)20:20 ID:GibO9cqH(3/4) AAS
スマートポインタのvectorを使いなさい

あと、いまどき生配列はないな
固定長配列ならstd::array、可変長ならstd::vectorを使いなさい
Visual C++でデバッグモードでコンパイルすれば、範囲外アクセスしたときに例外投げてくれるはずだ
994: 2012/10/22(月)23:30 ID:GibO9cqH(4/4) AAS
オブジェクトへの参照を保持していることとオブジェクトを所有していることは別だと思うんだ

例えば木構造でなるべくメモリを局所化したい場合だとこういう感じになると思う

class Node { Node* firstChild; Node* sibling; Node* parent; };
std::vector<Node> vNode;

この場合、Nodeは他のNodeへの参照を持ってるけど、所有しているわけじゃない
所有しているのはvNodeを持つオブジェクトだ

あれこれって>993と同じことじゃね
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.026s