[Interest] Double destruction of Qt objects in Qt example code?
thiago.macieira at intel.com
Sun Aug 19 19:22:51 CEST 2012
On domingo, 19 de agosto de 2012 17.18.34, Till Oliver Knoll wrote:
> Wow - I did not even know that it was legal C++ to explicitly call a
> d'tor, as in:
> SomeObject someObject;
> (at least my gcc on Mac compiles this without complaint. And as long as
> you don't release any resources twice inside the d'tor - or simply have
> a qDebug("D'tor called.") or something in the d'tor - nothing bad
> happens: the d'tor is indeed simply called twice (once explicitly, once
> the automatic variable goes out of scope).
Yes, it's perfectly valid. The standard will tell you that the destructor
running twice is undefined behaviour though.
> However it never occured to me to actually try such a thing. I mean,
> what would be a practical scenario where one wanted to explicitly call a
> d'tor? So clean up resources before the actual object gets destroyed
> (assuming that the code inside the d'tor would take care not to delete
> resources twice, such that it would be okay to call a d'tor several times)?
And here's the question: without looking at the sources for those classes, how
do you call the constructor? :-)
Hint: it's not
because that doesn't compile. This is perfectly valid:
Once you figure out how to call the constructor, you'll also learn another way
to call the destructor.
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
Intel Sweden AB - Registration Number: 556189-6027
Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 190 bytes
Desc: This is a digitally signed message part.
More information about the Interest