2011-02-17 5 views
0

Я создал «основной» класс, позвонил ему A (Veichle), и у меня есть два класса, которые наследуются от A Позволяет называть их B (Car) и C (MC). У меня также есть обработчик позволяет называть его «D», который связывает A, B и C. Тогда у меня есть класс Form1 назовём, что Е (Визуальная)Visual ++ print from main с наследованием на визуальной форме в списке

Я хочу напечатать частных членов от А на визуальная форма "Е" в Listbox

Если я попробовать бывший)

this-> listbox1-> изделия-> добавить (X.veichles [я] -> 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())' –

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