Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Pomozte s programem v C++...

NULL je ukazovateľ, zatiaľ čo tvoja funkcia má vrátiť inštanciu triedy Student a nie ukazovateľ na inštanciu.

Riešení je viacero:
1. Použiť namiesto triedy std::list triedu std::map, ktorá má funkciu pre hľadanie podľa kľúča.
2. Prerobiť zoznam študentov tak, aby obsahoval ukazovatele. V prípade neúspechu sa vráti NULL.
3. Zmeniť vyhľadávaciu funkciu tak, aby vrátila iterátor. V prípade neúspechu sa vráti studenti.end().
4. Použiť vzor Null Object. V prípade neúspechu sa vráti nejaká dohodnutá inštancia, reprezentujúca žiadneho študenta.

Edit: Asi si už na to prišiel, ale pre istotu: Ak máš kontajner (std::list, std::map, ...), do ktorého vkladáš priamo inštancie nejakej triedy a nie ukazovatele, tak tá trieda musí implementovať minimálne kopírovací konštruktor, aby to vôbec fungovalo.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny