Dobrý deň,
neviem rozlíšiť funkcie a premenné s parametrom const.
Príklad s premennými:
(1) const int x = 10; (2) int const x = 10;
Teraz príklady s funkciami:
(3) const int foo(int i) (4) int const foo(int i) (5) int foo(int i) const
(1 - 2) znamená, že premenná je konštantná a nesmie sa ďalej meniť. Zistil som, že obe možnosti sú ekvivalentné.
(3 - 4) znamená, že funkcie vracajú konštantný návratový typ, pričom sú ekvivalentné.
(5) znamená, že je read only funkcia. Vo vnútri iba vracia return no nič nemodifikuje.
Mohli by ste to po mne skontrolovať?
Ďakujem.
Offline
(5) říká, že kompilátor má zkontrolovat, jestli metoda nemění (přímo nebo nepřímo) nějakou proměnnou objektu. Pokud se o to metoda pokusí, hlásí se chyba při překladu.
(4) znamená, že se vrácená hodnota bude ve výrazu chovat jako konstanta (prakticky pointer na pole se bude chovat jako pointer na konstantní pole). Opět slouží ke kontrole při překladu. Ale nikdy jsem to prakticky nepoužil, tak ať to po mě ještě někdo překontroluje.
Offline