G++ a delete
Jirka Kosina
jikos na jikos.cz
Čtvrtek Leden 27 13:42:33 CET 2005
On Thu, 27 Jan 2005, Michal Samek wrote:
> > No, sice uz jsem dlouho nic v C++ nenapsal, ale je mi divne, ze kdyz
> > chces polymorfismus, tak ze tam nemas virtualni destructor. (Ackoliv by
> > byl zatim prazdny.) Pokud tam nemas zadnou virtualni metodu,
> > tak se obavam, ze je to plne staticke.
> Spis mi slo o priklad, zda to takhle vubec jde. Ale pokud by to nebylo
> korektni, pak by to asi nemelo jit zkompilovat.
Syntakticka spravnost (jde to zkompilovat) neimplikuje spravnost
semantickou (to zkompilovat jit muze a nemusi).
> V mem konkretnim pripade tridy obsahovaly neco malo metod jako virtual,
> destruktory jsem nechal staticke, protoze kdyz jsem je zkousel
> deklarovat jako virtual (aniz bych vedel presne proc, snazil jsem se
> zbavit te chyby), tak to snad ani neslo vytvorit - spadlo to hned na
> new. Zkusim zjistit az bude trochu casu, co v tom vezi a zeptam se
> konkretneji. Zatim diky, to mi staci.
Ve Vasem pripade by destruktor v kazdem pripade mel byt virtualni, protoze
o typu objektu neni rozhodovano v case kompilace. (staci nadefinovat
virtualni destruktor v predkovi, ve vsech potomcich pak bude virtualni
automaticky).
To ze to spadlo uz na new je divne a spis by to znamenalo, ze jste tam
nekde neco vykropil :)
--
JiKos.
Další informace o konferenci Linux