Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názor k článku
Mono míří do linuxových distribucí

Sten
Sten (neregistrovaný) ---.net.upc.cz
25. 6. 2009 23:52

Re: Podporuji .NET

celé vlákno

Neměl jsem na mysli, že se úplně vzdá pointerů, to je samozřejmě nesmysl (bez nich nefunguje polymorfismus), ale že je nějak vhodně zabalí (třeba do shared_ptr z Boostu), aby se o ně nemusel starat (vzdá se tedy práce přímo s pointery, používá proxy objekty). Tím se velice účinně vyhne segfaultům i memory leakům. S voláním Céčkových funkcí může být problém, ale opět to lze vyřešit vhodným obalením anebo prostým operátorem *. Bohužel i zkušenější programátoři na tyto základní věci často kašlou a potom může dojít k rare condition, kterou netestovali, s následným memory leakem.

GC má na druhou stranu zásadní nevýhodu v tom, že nezaručuje čas volání destruktoru. Zkuste vytvořit fungující třídu pro zamykání mutexů, která hned po opuštění kritické sekce ten mutex automaticky odemkne (v C++ při opuštění scope díky stack unwind). Pokud se vám GC líbí, pro C++ existuje spousta knihoven, které to umí (klidně můžete přetížit new a cpát do GC všechno). Výhoda je v tom, že GC nemusíte používat.