pridany otazky k testu - zkouska formatu na gitea ctecce
This commit is contained in:
108
Zpracované Otázky.md
Normal file
108
Zpracované Otázky.md
Normal file
@@ -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í?
|
||||
Reference in New Issue
Block a user