Odpověď na názor

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

  • 10. 5. 2012 15:23

    Sten (neregistrovaný)

    [28] Ahoj, Honzo :-)

    Chybějící operátor = je samozřejmě problém, ale to je zpíše pozůstatek přinesený z C a jeho struktur. Nový standard C++11 už umožňuje operator = zrušit (a u staršího to trikem s private jde taky), ale bohužel kvůli zpětné kompatibilitě už nikdy nebude nutné jej u ne-POD objektů explicitně deklarovat, aby existoval.

    [33] C++ má i standardní výjimky (std::out_of_range, std::invalid_ar­gument ap.), které vyhrazují třeba STL kontejnery, ale pro své třídy je nikdo nenutí programátora používat. Nicméně to kromě dědění z java.lang.Thro­wable nevynucuje ani Java (a nakonec mě ani nenapadá, jak to vynucovat).

    Neodchycení výjimky znamená pád programu (std::terminate). Nezpracování chybového kódu znamená nedefinovaný stav a celkem libovolné chování závislé na tom, co, kde a za jakých okolností se nepodařilo. V tomhle se zrovna C++ chová stejně jako Java.