2011-02-17 5 views
0

私は「メイン」クラスを作成してA(Veichle)、 と呼びます。Aから継承する2つのクラスはB(Car)およびC(MC)。 私もハンドラがAを結合する「D」、BとCの それを呼び出すことができますしている、私はForm1クラスは、E(ビジュアル)Visual ++をメインから継承したリストボックスのビジュアルフォーム

は、私が上からプライベートメンバーをプリントアウトしたいという電話をすることができます持っていますリストボックス

で視覚的なフォーム "E" 私は元をしようとした場合)

this-> listbox1->項目 - >追加(X.veichles [I] - > thisはgetBrand());

それはveichlesは私がそれを回避するにはどうすればよいD.

の民間メンバーであることを不平を言いますか?

答えて

0

プライベートとは、アクセスが他のクラスに対して許可されていないことを意味します。

パブリックアクセサ関数を作成する必要があります。たとえば、GetVehicleByIndex(int idx)です。

あなたのコードは次のようになります。

A* pVehicle = X.GetVehicleByIndex(i); 
if (pVehicle) // assuming NULL indicates error 
    add(pVehicle->getBrand()); 
else 
    // react on error 
+0

またはエラー報告のための例外を使用して、それは単純なことができ1行: 'add(X.GetVehicleByIndex(i).getBrand())' –

0

私は、自分の質問に答えることができます。 form1.hと通信クラスクラスのhandler.cppインサイド

、あなたが関数を作成:

void getPersonByIndex(i); 

return this->person[i]->getSurName(); 

はその後form1.hであなたが書く:

for(int i=0;i<this->getNrOfPersons;i++) 

String^ str = new String(comm.getPersonByIndex(i)); //this conversion was my problem 

this->listbox->beginupdate(); 
this->listbox->items->add(str); 
this->listbox->endupdate(); 
関連する問題