2012-02-27 29 views
1

よく私はプライベート属性を持っているのTListというクラスとカウンターC++のダブルポインタの配列リスト

private: 
    TPerson **pListe; 
    int counter; 

TPersonを行う必要があるが、私は前に作られた別のクラスです。カウンタは配列の位置を知ることです。 だから私は今、私の問題がある

Add(TPerson *p), Delete(TPerson *p) 

のようなメソッドを持っているリストを作成する必要があります。 私は私のダブルポインタリストにそれらのTPersonオブジェクトを追加することができますか?

私は私の

void TListe::Add(TPerson &p) {...} 

方法をしました。

私はそのようにtryしました: pListe [counter] =&p;

たとえば、それは動作しません..誰かが私はダブルポインタ配列を使用してリストとして使用する必要がどのように私を説明することができますか?

挨拶

+0

あなたは、単に ''のstd :: vector''を使用することができませんか?ちょっと混乱しているように聞こえますが、あなたの状況では、 "counter"がpListe内で最後に割り当てられたセルを超えている場合の処理​​方法がわかりません。 – foxx1337

+0

宿題の場合は、 '[宿題]'タグを追加する必要があります。これにより、他の人はどのように答えなければならないかを知ることができます(ただちに問題を解決するのではなく説明する)。宿題でなければ、まず標準ライブラリに存在するため、ダイナミック配列データ構造を最初に書くべきではありません。 – jalf

+0

どのようなエラーが表示されますか?それはあなたが作る時ですか?ランタイムクラッシュ?あなたは配列を割り当てましたか? –

答えて

2

私はあなたのコード例によって混乱している、*pListeTPersonTPersonオブジェクトの配列、または単にポインタの最初の要素へのポインタを保持するために起こっています?。私はあなたが最初の人へのポインタの配列を割り当てる必要があると思う:

pListe = new TPerson* [size]; 

その後、あなたが行うことができます:

Add(TPerson* p) { 
pListe[some_counter_to_past_the_last_element] = p; 
... 
} 

Add(TPerson& p) { 
pListe[some_counter_to_past_the_last_element] = &p; 
... 
} 
+0

ああありがとうございます。私の間違いは、私が "pListe [some_counter_to_past_the_last_element] = * p;を使っていたことでした。 – darkdog