Jste zde

C++

Proč v C++ využívat specifikátor override

Od C++11 je k dispozici specifikátor override. Lze pomocí něj označit virtuální metodu, která předefinovává (anglicky overrides) virtuální metodu z nadtřídy. V příspěvku uvedu dva důvody, proč je dobré všechny takovéto metody tímto specifikátorem označovat.

Zajímavosti z C++: size_t vs std::size_t

Možná jste se již setkali s C++ kódem, kde se místo size_t využívalo std::size_t. V tomto krátkém příspěvku se dozvíte, jaký je v nich rozdíl a který z nich používat.

Ještě jednou a lépe: správa prostředků v C++

Dnes se podíváme na velmi užitečný koncept zvaný RAII, který usnadňuje správu prostředků a vede ke kvalitnějšímu kódu bez duplicit.

Potřeba defaultního konstruktoru při vkládání do std::map

V příspěvku se podíváme na to, proč v C++ při vkládání objektů do std::map přes operator[] vyvstává potřeba mít definovaný defaultní konstruktor. Následně si ukážeme způsoby vkládání objektů, při kterých tato potřeba odpadá.

Zajímavosti z C++: Iterace přes výčet hodnot

Od C++11 lze napsat for cyklus přes daný výčet hodnot (např. 1, 2, 2, 8, 13) mnohem jednodušším způsobem, než tomu bylo v C++98. V tomto krátkém příspěvku se podíváme, jak na to. Mrkneme se i na jedno rozšíření připravovaného standardu C++1z, které kód ještě o něco zjednoduší.

Proč psát kód na jedné úrovni abstrakce

V dnešním příspěvku se podíváme na to, proč je dobré psát kód na jedné úrovni abstrakce (angl. single level of abstraction). Ukážeme si několik příkladů kódu, který tomuto principu nevyhovuje, poté jej upravíme a uvidíme, jaké výhody nám to přineslo.

Dva z mých oblíbených přednášejících o programování

Dnes bych chtěl krátce zmínit dva z mých oblíbených přednášejících o programování, včetně odkazů na shlédnutí některých jejich přednášek.

Vyhledání a odstranění zbytečných #includů hlavičkových souborů v C++

O důležitosti snižování počtu #includovaných hlavičkových souborů v C a C++ jsem zde již psal. Důvodem je urychlení překladu, především pak toho inkrementálního během vývoje. V dnešním příspěvku se podíváme na nástroj include-what-you-use, který umí zbytečné #includy detekovat a případně i automaticky odstranit či nahradit za dopředné deklarace.

Méně známé skutečnosti o C++: size() nemusí vrátit unsigned int

Dnes se podíváme na to, proč se běžně psaný cyklus tvaru for (unsigned int i = 0; i < container.size(); ++i) může zacyklit.

Proč v C++ používat nullptr místo NULL či 0

Od C++11 je k reprezentaci nulového ukazatele možno použít nové klíčové slovo nullptr. V příspěvku se dozvíte, proč byste měli používat právě nullptr místo NULL či 0.

Stránky

Přihlásit se k odběru RSS - C++