Odpověď na názor

Odpovídáte na názor ke článku Skrytá úskalí vícenásobné dědičnosti v C++.

  • 7. 5. 2012 6:59

    Ondřej Novák (neregistrovaný)

    Pane Ponkrác, všechno to jsou Vaše doměnky, které stojí na hliněných nohou. Sizeof opravdu vrací velikost, kterou třída zabere v paměti. Tedy bez paddingu, který tam může překladač dodat v případě, že potřebuje udělat zarovnání pro další membery. Dokonce i samotná velikost může být vrácena s respektem na zarovnání (pokud třída obsahuje member, který se zarovnává na adresu dělitelnou 4, bude velikost celého objektu také dělitelná 4, protože podle tohoto čísla se například adresují prvky v poli).

    Že prázdná třída skutečně má velikost 1 (abych byl přesný, prázdná třída má velikost sizeof(char) ), vám potvrdí sám Stroustrup, viz: <a>http://www­.research.att­.com/~bs/bs_faq2­.html#sizeof-empty

    Ostatní poznámky spíš ukazují vaší neznalost celé problematiky (otázka, k čemu je tedy sizeof, když podle vás nevrací správné údaje? Jaké by měl mít využití? Jak budete bez sizeof implementovat takový std::vector, jak budete počítat potřebnou velikost paměti?)