2011-08-09 7 views
0

私は1つのVertexメンバを持つPolygonクラスを持っています。そのメンバーはリンクされた頂点のリストの一部であり、それらはポリゴンの頂点です。したがって、Polygonオブジェクトには、頂点の一部への参照が1つだけ含まれています。リンクされたリストを移動することによって他のものを取得します。リンクリストのメンバを持つオブジェクトのデストラクタ

問題は次のとおりです。ポリゴンオブジェクトを破棄する。私はC++から来ています。デストラクタでは、ポリゴンの頂点から始め、リストを移動してすべての頂点を削除します。私はC#で何をすべきですか?まず第一に、削除はありません。自動ガベージコレクションがあるので、私は何をすべきか分かりません。

これはC++デストラクタは、次のように説明し

Polygon::~Polygon(void) { 
    if (_v) { // _v is Vertex member the Polygon has, the only one 
    Vertex *w = _v->cw(); 
    while (w != _v) { // advance through the linked list members and delete them 
     delete w->remove(); 
     w = _v->cw(); 
    } 
    delete _v; // finally delete the vertex which is member of the polygon 
    } 

は何もしないあなたに

+0

@Joey:なぜタグをC++に変更しましたか? – GManNickG

答えて

4

ありがとうございます。

GCは自動的にすべてを処理し、使用されていない頂点やポリゴンが参照されなくなった時点で収集します。

+1

クラスの1つが管理されていないリソースを所有していない限り。その場合、リストを歩き、各要素に 'Dispose'を呼び出してリソースを解放し、リストとガベージコレクタのすべての要素をクリーンアップしたままにしておきます。 –

関連する問題