From 47f1bf98eb8706bef5579391fc84c1604afb87e6 Mon Sep 17 00:00:00 2001 From: Lugaricci Date: Sat, 28 Mar 2026 21:54:46 +0100 Subject: [PATCH] pridany otazky k testu - zkouska formatu na gitea ctecce --- Zpracované Otázky.md | 108 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 Zpracované Otázky.md diff --git a/Zpracované Otázky.md b/Zpracované Otázky.md new file mode 100644 index 0000000..35ef949 --- /dev/null +++ b/Zpracované Otázky.md @@ -0,0 +1,108 @@ +zatím nic moc, skoro nic nemám a není to moc podrobné +Poznámka: Příklady jsou zjednodušené a ne vždy jsou 100% syntakticky právně (nechci vždy psát int main(void)... etc.) +# Principy objektového programování +1) Jaký je rozdíl mezi třídou a objektem? + **Třída je šablona pro vytváření objektů**. Typicky napíšu třídu a pak z ní inicializuju její objekty, které až poté v kódu využívám. + ```cpp + class Trida + { + public: + int cislo; + // tady jsou funkce a promenne + }; + + int main(void) + { + Trida objekt; + objekt.cislo = 10; + } + ``` +2) Jak je určena viditelnost členských proměnných a metod? + - public -> přístup možný odkudkoli z programu + - protected -> přístup je možný ze třidy nebo z podtříd (dědičnost) + - private -> pouze funkce uvnitř objektu (třídy) můžou přistupovat ke členu s touto viditelností + ```cpp + class Trida + { + public: + int a; + private: + int b; + protected: + int c; + }; + + int main(void) + { + + } + ``` +3) Jaký je rozdíl mezi členskými metodami (a proměnnými) třídy a objektu? + Třída může obsahovat i metody typu `static` to jsou **členské metody**. Pokud ze třidy inicializuju objekt, tyto metody se do objektu nepředají. Nejlepší způsob jak je zavolat je přes jejich třídu `Mojetrida::metoda();` +4) Jaký je rozdíl mezi klíčovými slovy protected a private? + - **private** -> přístupné **POUZE** uvnitř třídy, zděděná třída (a její objekty) nemá přístup k k proměnné původní třídy s protected + - **protected** -> vlastně je to jako private (tedy z kódu nemůžu měnit tuto proměnnou/metodu ve třidě), ale s tím rozdílem, že pokud vytvořím podtřídu (pomocí dědění) a z ní vytvořím objekt, tak jeho metody můžou přistupovat k protected členům objektů původní třídy +- Co je polymorfismus a jak je ho dosaženo? +- Co je to bázová třída a čím se vyznačuje? +- Uveďte příklad deklarace plně virtuální metody? +- Co je to implicitní konstuktor? +- Co je to kopírovací konstruktor? +- Jaké jsou možnosti dědění? Uveďte příklady. +- Co je to virtuální dědění a k čemu je dobré? +- Které vlastnosti rodiče potomek nedědí? +- Co je to přetížení? Uveďte příklad (několik řádek kódu, ze kterých bude zřejmé, o co jde). +- Jaký je rozdíl mezi přepsáním (override) a přetížením (overload)? +- Co je vazba typu kompozice? Uveďte příklad (několik řádek kódu, ze kterých bude zřejmé, o co jde). +- Co je vazba typu asociace? Uveďte přiklad (několik řádek kódu, ze kterých bude zřejmé, o co jde). +- Co reprezentuje klíčové slovo this? +- Jaký je rozdíl mezi referencí a ukazatelem? +- Jaký je rozdíl mezi mělkou a hlubokou kopií? +# Programování v C++ +### 1) Napište příklad načteni hodnoty typu int ze standarního vstupu pomocí proudového operátoru. Jak lze ošetřit správnost vstupu? +### 2) Jak se v C++ provádí přetížení operátoru? Uveďte příklad. +### 3) Jaké operátory nelze v C++ přetížit? +### Jak a kdy se volá konstruktor a destruktor? +### Jaký je rozdíl mezi objektem alokovaným v zásobníku a objektem dynamicky alokovaným na haldě? +### Jaký je rozdíl mezi operátory `delete` a `delete[]`? +### Jaká je návratová hodnota destruktoru? +### Co je třeba zajistit při dynamické alokaci? Uveďte příklad. +### Co je to výjimka a k čemu je dobrá? Uveďte příklad. +### Kolik výjimek je možné v programu ošetřit? +### Co je to generická funkce? +### Jak lze vytvořit explicitní instanci generické funkce? K čemu je to dobré? +### Jak jsou obvykle parametrizovány šablony tříd? +### V čem spočívá problém vícenásobného dědění? Jak je možné tomuto problému zabránit? +### Co je to zapouzdření a čemu je dobré? +### Jak lze využít implicitní hodnoty argumentu funkce? Uveďte příklad. +### Jaký je rozdíl mezi deklarací třídy pomocí class a struct? +### Co je to konverzní konstruktor? +### Jaký je rozdíl mezi statickou a dynamickou vazbou? +### Jaký je význam klíčového slova auto? Lze ho použít vždy? +### Co přesouvací (move) kontruktor? +### Co je pravidlo tří (rule of three)? +### Jaký je tvar definice lambda funkce v C++? Uveďte příklad a popište, co funkce dělá. +# STL kontejnery +## 1) Co je to kontejner? +## 2) Jaký je rozdíl mezi sekvenčními a asociativními kontejnery? Uveďte příklad. +## 3) Jaké jsou klíčové vlastnosti kontejneru std::vector? +## Jaké jsou klíčové vlastnosti kontejneru std::map? +## Jaké jsou klíčové vlastnosti kontejneru std::list? +## Jakého datového typu může být klíč kontejneru std::map? +## Co je třeba zajistit v případě, že klíčem v kontejneru std::map je strukturovaný datový typ (např. naše vlastní třída)? +## Jaký je význam datového typu std::pair? +## Co je to iterátor? Uveďte příklad. +## Jaký je rozdíl mezi konstantním a nekonstantním iterátorem? +## Co všechno je třeba zajistit pro vytvoření vlastního iterátoru? +## Co je range-for cyklus? Uveďte příklad. +## Uveďte příklad použití algoritmu sort (deklarujte vektor libovolného datového typu, vložte do něj data a vektor seřaďte). +# Praktické programování (Qt a související) +- Co je to event-driven programování? +- Jaký je rozdíl mezi událostí a signálem? +- Uveďtě příklady událostí v Qt a jejich využití. +- Popište systém signálů a slotů, uveďte příklad propojení. +- Jakým způsobem lze vytvořit v Qt okno a v něm vykreslit grafickou komponentu? +- Jak lze měnit grafickou podobu jednotlivých Qt komponent? +- Co se časovač (QTimer), k čemu je dobrý a jak se používá? +- Co si představujete pod pojmem MVC? +- Jaký je rozdíl mezi UDP a TCP transportní vrstvou? +- Co je to REST rozhraní? \ No newline at end of file