Názor ke článku Správa paměti v C++ od Miloslav Ponkrác - RAII primárně není a nikdy nebyl o uvolňování...

  • 11. 4. 2012 19:05

    Miloslav Ponkrác (neregistrovaný)

    RAII primárně není a nikdy nebyl o uvolňování paměti.

    RAII je o pouhém zavolání destruktoru, jakmile skončí obor platnost proměnné, která nese objekt.

    Stačí špatně naimplementovat destruktor a memory leaky nebo resource leaky budou hvízdat jak kulky na frontě.

    Samozřejmě, že s pomocí RAII a vhodných tříd lze memory leakům do značné míry zabránit. Na rozdíl od GC se stará nejenom o uklizení paměti, ale obecně o uklizení všech použitých zdrojů, které objekty používají.

    Nicméně musí být objekty dobře implementovány.

    RAII negantuje uklizení paměti, RAII garantuje pouze to, že budou korektně zavolány destruktory všech objektů, kterým končí obor platnosti. Nic víc.

    To nic nemění na tom, že při vhodném stylu se v C++ programátor o uvolňování paměti starat nemusí.