0

「メイン」クラスをA(Veichle)と呼び、Aから継承した2つのクラスをB(Car)とC(MC)と呼びます。また、A、B、Cをバインドする「D」と呼ぶハンドラーがあります。次に、Form1クラスでそのE(Visual)を呼び出すことができます。

リストボックスのビジュアルフォーム「E」にAのプライベートメンバーを印刷したい

私が元を試してみる場合)

this-> listbox1-> items-> add(X.veichles [i]-> getBrand());

veichlesがDのプライベートメンバーであると文句を言います。

どうすればそれを回避できますか?

4

2 に答える 2

0

その時、私は自分の質問に答えることができます。

handler.cppと通信するクラスクラス内でform1.h、次の関数を作成します。

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();
于 2011-02-23T16:47:24.050 に答える
0

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

public アクセサー関数を作成する必要があります。たとえば、GetVehicleByIndex(int idx).

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

A* pVehicle = X.GetVehicleByIndex(i);
if (pVehicle) // assuming NULL indicates error
    add(pVehicle->getBrand());
else
    // react on error
于 2011-02-17T23:48:10.703 に答える