Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z dynamic_cast i iteratorem

Ostatnio zmodyfikowano 2015-01-14 14:10
Autor Wiadomość
Sarth
Temat założony przez niniejszego użytkownika
» 2015-01-14 14:10:59
Dziękuję za odpowiedzi. Program działa poprawnie.

Edit: Niestety, ale mam kolejny problem.

C/C++
void person::print( std::list < client *> & lista )
{
    std::list < client *>::iterator iter;
    for( iter = lista.begin(); iter != lista.end(); ++iter )
    {
        if( person * per = dynamic_cast < person *>( * iter ) )
        {
            std::cout << "Numer karty stalego klienta: " <<( * iter )->loyaltyCard;
            std::cout << "Imie: " << per->firstName << " ";
            std::cout << "Nazwisko: " << per->lastName << " ";
            std::cout << "Pesel: " << per->pesel << " ";
            std::cout << std::endl;
        }
    }
}

O ile nie mam np. problemu z dodawaniem obiektów różnych klas pochodnych do listy. To nie wiem jak ją wypisać. Jak mam wywołać powyższą funkcję?

C/C++
person p;
p.print( clientList );

Po tej nieudolnej próbie wywołania metody program przestaje działać. Teoretycznie mógłbym zadeklarować tę metodę jako globalną i w klasach pozmieniać zmienne na publiczne, ale to raczej nie jest zgodne z paradygmatem programowania obiektowego. Wolałym wszystko "trzymać" w klasach.

Edit2:
Już rozwiązałem wszystkie problemy związane z tym programem. Zamykam temat.
P-124893
1 « 2 »
Poprzednia strona Strona 2 z 2