NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze – Lekce 8 - Konstantní metody v C++

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Petr Tureček:20.11.2018 18:11

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

 
Odpovědět
20.11.2018 18:11
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Petr Tureček
David Hartinger:20.11.2018 18:26

Jasně, díky, opraveno :)

Odpovědět
20.11.2018 18:26
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!

 
Odpovědět
13.2.2019 14:04
Avatar
Odpovídá na Otakar Pok
Patrik Valkovič:13.2.2019 14:20

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

Odpovědět
13.2.2019 14:20
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.