2011-02-17 22 views
0

我做了一個「主」類讓我們叫它A(Veichle), ,我有兩個繼承自A的類讓我們稱它們爲B(Car)和C(MC)。 我也有一個處理器可以讓調用它結合A,B和C 後來我也Form1類可以稱之爲E(視頻)可視化++打印從列表框中的可視化形式的主繼承關係

我想從上打印出來的私有成員「d」視覺形式 「E」 在一個列表框

如果我嘗試前)

這 - > listbox1->物品─>加(X.veichles [I] - > 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

或使用錯誤報告的異常,它可以是簡單的一行:`add(X.GetVehicleByIndex(i).getBrand())` – 2011-02-18 00:46:26

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();