Možná jste se již setkali s různými zápisy použití operátoru sizeof
. Konkrétně se jedná např. o zápisy sizeof(int)
, sizeof(*p)
a sizeof *p
. Jaký je mezi těmito zápisy rozdíl a kdy je nutné použít závorky se dočtete v následujícím příspěvku.
programování
Více než často vídávám, že se do hlavičkových souborů dává tzv. using direktiva ve tvaru using namespace xxx;
. Nejčastější je using namespace std;
. V následujícím příspěvku se dozvíte, proč je to špatný nápad a důvody, proč to nedělat.
Se standardní funkcí exit()
, která ukončí běh programu, se již asi setkal každý, kdo alespoň trochu programoval v jazyce C. Tato funkce spadá do kategorie funkcí, které se po zavolání nevracejí na místo, odkud byly volány. Méně se však ví, že kromě zmiňované funkce exit()
je v jazyce C řada dalších funkcí, které vykazují podobné chování. A právě o nich bude tento příspěvek. V závěru se také podíváme na nové klíčové slovo _Noreturn
, které je v souvislosti s tímto tématem k dispozici od ISO C11 (nejnovější standard jazyka C).
Dneska se podíváme na to, jak lze různými způsoby iterovat přes standardní kontejnery a jak si stojí tyto způsoby ve vzájemném porovnání z hlediska rychlosti. Mrkneme se i na to, co s tím dokáže udělat překladač při zapnutí optimalizací.
Vítejte v prvním díle nového seriálu na mém blogu: chyby v návrhu. Budeme se zabývat častými chybami v návrhu, kterých se dopouští (nejen) začínající programátoři. Dnes si povíme něco o situacích, kdy má třída příliš mnoho odpovědností.
Možná jste se už během své programátorské praxe dostali do situace, kdy jste potřebovali vaši bázovou třídu udělat čistě virtuální, ale žádná z metod k tomu nebyla vhodná. Jednou z možností, která je nepříliš známá, je využít destruktor. O tom, jak to udělat, je následující příspěvek.
Troufám si tvrdit, že většina programátorů o klíčovém slovu this
slyšela a ví, že se jedná o automaticky zpřístupněný ukazatel v metodě, který ukazuje na objekt, na kterém byla metoda zavolána. Obvykle se s tímto klíčovým slovem nesetkáte, protože když v metodě voláte jiné metody či přistupujete na datové složky objektu, tak je onen ukazatel implicitní. Jsou ovšem situace, ve kterých je použití tohoto klíčového slova nutné. A o těchto situacích bude následující příspěvek.
Jak jistě z kurzů assembleru víte, existují dva typy bitových posunů doprava: aritmetický a logický. Pokud se tento posun aplikuje na kladné číslo, tak jsou oba typy totožné. Rozdíl nastane u posuvu záporných čísel, kdy logický posun doplňuje zleva nuly, kdežto aritmetický kopíruje znaménkový bit, který je 1 u záporných čísel ve dvojkovém doplňku. Operátor >>
v Pythonu je aritmetický posun doprava. Následující příspěvek se snaží o implementaci logického posunu do Pythonu.
Dneska se v krátkosti podíváme na jednu srandu z C a C++, konkrétně na to, že pozice jistých specifikátorů (např. typedef
) nehraje roli.