поместите dynamic_cast в цикл

Это правильно поставить dynamic_cast в цикле??

//Searches for the reservation with the given reservation number, and   //deletes it. Uses the confirmReservation function if the reservation to be     //deleted was an OK one
void cancelReservation(string resNum)
{
for (int i=0;i<seats+waitingListMax;i++)
{
for (int seat=i;seat<seats;seat++)
{
Ok* okptr=dynamic_cast <Ok*>(reservations[seat]);
}
for ( int wait=seats;wait<seats+waitingListMax;wait++)
{
Waiting* waitingptr=dynamic_cast <Waiting*>(reservations[wait]);
}
if ((reservations[i]!=0) && (reservations[i]->getReservationNumber()==resNum))
if (okptr)
{
//doing somting
}
if (waitptr)
{
//doing somthing else
}
}

0

Решение

Нет ничего плохого в том, чтобы поставить его под цикл.
Ваш класс должен быть полиморфным, но это является основным условием для использования dynamic_cast,

В вашем примере вы на самом деле не сильно достигаете, потому что вы перезаписываете указатель на каждой итерации. Но это, вероятно, ваше упрощение исходного кода.

1

Другие решения

Там нет ничего плохого в использовании dynamic_cast в цикле.

Но у вашего кода есть другая проблема: указатели okptr а также waitingptr ограничены только до глубины души {}, поэтому не может быть использован позже.

1

По вопросам рекламы [email protected]