Home page

BPPC home page

výuka home page



BPPC – praktické programování v C++

Náplň přednášek (2018)

náplň cvičení najdete zde







Výuka: přednášky upravené pro zimní semestr 2018/19: 1-13
(nejnovější přednášky (i se zpětnými úpravami a doplňky) jsou v sekci literatura)



týden

náplň

1


Úvod do předmětu
Úvod kurzu C/C++

nullptr
const proměnné a parametry
inline funkce

Opakovani C projděte si tento text do příště, zda jsou vám uvedené termíny jasné

2

Úvod C++ (názvy souborů)

prostory jmen namespace; operátor příslušnosti, knihovny C v C++
výjimky

3

základy vstupů a výstupů znaků v C++
práce s pamětí – new, delete
Reference
const u reference, rozdíly oproti C
přetěžování funkcí,

4

implicitní parametry
komentáře,
deklarace a definice proměnných

šablony – základy

Motivace C++, třída, úvod, definice. Základy návrhu objektu

5

termíny zkoušek,

Motivace C++, třída, úvod, definice. Základy návrhu objektu

Objektové programování, pojem třídy a struktury v C++,

přístupová práva
data a metody - práce s nimi,
ukazatel this

6

Termíny zkoušek

doxygen (výsledná dokumentace, zdroje dokumentace s příkazy (v cpp,h, md), příkazy, program doxygen a init soubor, program graphviz(dot))
doxygen2

Konstruktory a destruktory
statický datový člen třídy, statické metody

7

Konstruktory a destruktory dokončení
statický datový člen třídy, statické metody

svn
svn2
Návaznost svn na projekt ze cvičení.

8

Filozofie projektu
Zadání projektu – základní principy, mechanizmy, jak pracovat

TDD (TDD ve VS 2017)

přetížení operátorů, operátory, úvod streamy (definice pro projekt)

9


dokončení přetížení operátorů, operátory, úvod streamy (definice pro projekt). operátory přístupu ke členům třídy
friend funkce

inline metody

10

Vstupy a výstupy v jazyce C++ streamy

11


Pozvánka na poslední přednášku:
- Použití C++ v praxi
- konzultace ke zkoušce - rozbor typových příkladů

Hlavičkové a zdrojové soubory
const a metody
Objekty třídy jako datové členy uvnitř jiné třídy.

Dědění – jednoduché,
Volání konstruktorů, destruktorů.
Virtuální metody
Dědění – vícenásobné.

12


Automatický datový typ auto určený překladačem ze souvislostí

chytré ukazatele řešení pro sdílení a automatické uvolnění (vhodné pro výjimky) dynamické paměti.

RTTI, Runtime identifikace, Přetypování – převod mezi různými datovými typy, zjištění možnosti převodu, zjištění typu za chodu,

abstraktní datové typy – vytvoření třídy pro rozhraní bez funkce (nelze vytvořit objekt dané třídy), třída slouží pouze jako společný základ

Použití šablon pro třídu – „chytrý“ ukazatel – ukázka na cvičeních

znakové konstanty – možnost práce se znaky mimo ANSII obor (širší než char)

Modifikátor mutable možnost modifikace proměnné v konstantním objektu

Nové datové typy – long long, bool, širší int a speciální datový typ a konstanty pro logické proměnné

enum doplnit správný odkaz – jiná pravidla pro realizaci oproti jazyku C

prototypy funkcí, výpustka – jiná pravidla pro realizaci oproti jazyku C

Deklarace třídy uvnitř jiné třídy

C++11, C++14, C++17 – hlavní rozšiřující vlastnosti (mimo zmíněných dříve)
C++11 move semantika; constexpr – určení hodnot konstantních výrazů již za překladu; inicializační seznam v {} struct Pole a={10,11}; cyklus „foreach“ for(int& i : pole) {}; lambda funkce – anonymní dočasné funkce – např. v parametru funkce;
C++14 rozšíření lambda funkcí; mutex knihovna; auto a decltype;
C++17 další rozšiřování možností stávajících vlastností a implementace nových

STL – standardní šablonová knihovna – definice objektů pro použití v často používaných konstrukcích

událostmi řízené programování – SW reaguje na události (změny stavu) - asynchronní. Zjištění změny stavu – poslání zprávy – (předání/transport zpráv) - zpracování (včetně generování nových zpráv).

Shrnutí deklarací a definicí tříd a objektů

Opakování návrhu třídy shrnutí postupu návrhu a realizace třídy CVector s otázkami na nejdůležitější termíny a vlastnosti C++. Vhodné pro (domácí) zjištění stupně nabytých znalostí.

13


Přednáška z praxe: využití jazyka C/C++ v praxi; normalizační proces jazyka C++; rozbor vybraných konstrukcí jazyka C++

konzultace, příklady na zkoušky ...









Poslední úpravy 2018-10-08