Files
PPC/poznamky z hodin/3. týden.md
Lugaricci 56b536368b pridani poznamek s conteinery, restrukturalizace, oprava kodu
pridani poznamek ke containerum zatim pouze s vectory
poznamky z hodim maji ted vlastni podslozku
lehka oprava kodu vsede mozne, hlavne pridani cpp pro lepsi cteni a
oprava drobnych chybek
2026-03-06 15:30:21 +01:00

2.1 KiB

s- výjimky

  • reference

  • konstantní metody/atributy

  • přetížené operátory

  • indexování + volání funkce (oboje jsou operátory)

  • lambda funkce

  • cvičení

    • conteinery: vector, list, mapa

Výjimky

  • Pozn: "Častokrát je možná lepší, když ten program spadne, než když se chová špatně."
  • Řešení neočekávaných chyb
  • Může se to stát náhodně (např. poškozený/přeplněná paměť)
  • používá se try a catch
try {
# kod kde nastane vyjimka / problem
}
catch (typ vyjimky) {
# kod, ktery se s vyjimkou popasuje
}

knihovna: #include <exception> Pak existuje ještě třetí operátor a to operátor throw, který vyvolává výjimku. např throw "Deleni nulou.\n -> vyvolá výjimku Deleni nulou\n ``

Ošetření více výjimek

catch (typ vyjimky) {
# kod, ktery se s vyjimkou popasuje
}
catch (...) {
# univerzalni reseni vyjimek pro vsechno ostatní
}

Typy výjimek

  • <exceptions>
    • std::exception - bázová třída
    • virtual what() - vrací řetězec výjimky
    • terminate() - ukončí program, když se něco pokazí?
  • <stdexcept>
    • std::out_of_range
    • nestihl
    • nestihl
  • <new>
    • nestihl
    • nestihl

Reference

  • ukazatelé byly označeny komunitou C++ jako nebezpečné např. kvůli nejasné syntaxi

  • Reference je obdoba konstantního ukazatele

  • nelze vytvořit prázdnou referenci, je svázána s hodnotou a ne adresou (?)

  • Pokud možno pls používat reference

  • Reference

Přetížené operátory

  • stejně jako funkce lze přetížit operátory (protože to jsou vlastně takové funkce)

  • operátory definované pro dané datové typ nelze přetížit

  • týká se to hlavně operátorů pro instance tříd

  • např nelze přetížit: . .* :: ?: sizeof

Přetížení binárních operátorů

např: +, -, *, ..., +=, -=, ... používá se @ např: x @ y

Přetížení unárních operátorů

Přetížení postfixových operátorů

Lambda funkce

  • existuje něco jako funktor :C
  • místo funktoru mám lambda funkce
  • každou lambda funkci můžu přepsat do funktoru

Conteinery

Vector

List

Map