Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 8. diel - Konštantný metódy v C ++

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Petr Tureček:20.11.2018 18:11

V poslednim kousku kodu tady v clanku by asi melo byt:
const int& getVek() const;

Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Petr Tureček
David Hartinger:20.11.2018 18:26

Jasně, díky, opraveno :)

Odpovedať
New kid back on the block with a R.I.P
Avatar
Otakar Pok
Člen
Avatar
Otakar Pok:13.2.2019 14:04

Ahoj, jsem teď docela zmatený z popisu tohoto kódu:

class Uzivatel
{
    const int vek;
    const char* jmeno;
};

kde se píše, že pokud bude použita konstatní metoda, tak si před atributy můžeme představit klíčové slovo const a z toho nám tedy vznikne const char* jmeno;
Toto ale chápu jako pointer na konstantní char, tzn. mohu změnit kam bude pointer ukazovat, ale nemohu změnit hodnotu na adrese kam ukazuje.
Konstatní pointer na char by měl být char * const jmeno, ne?

Zkoušel jsem to kompilovat:

void nastavJmeno() const
    {
        *jmeno = 'C';
    }

jen abych zjistil co lze tedy měnit a opravdu se to chová jako konstatní pointer na char. Mohu změnit obsah na adrese kam pointer jmeno ukazuje, ale změnit pointeru adresu kam ukazuje již nejde:

char znak = "C";
void nastavJmeno() const
    {
        jmeno = &znak;  // nelze
    }

Neměl by tedy být správně zápis v článku char * const jmeno? Nebo mi něco uniklo? :-)
Díky moc!

Avatar
Odpovedá na Otakar Pok
Patrik Valkovič:13.2.2019 14:20

Jo máš pravdu, opraveno v článku.

Odpovedať
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 4 správy z 4.