[RFC] Proper initialization of class members and variables

Michael Pyne michael.pyne at kdemail.net
Sun Nov 20 00:27:07 GMT 2005


On Saturday 19 November 2005 09:14, Luciano Montanaro wrote:
> > Stack and heap POD variables are not auto-initialised to 0 or anything
> > else.
>
> Yes, but for object instances, the constructor is called.
> If the m_* variables in the patch are member variables, these should be
> initialized in the constructor. If the object does not have an explicit
> constructor, the default one clears the object to zero, if I remember
> correctly. Otherwise the constructor has to initialize the member variables
> itself.

The constructor is called.  But, for plain-old-data member types like all 
pointers, int, bool, etc, no initialization is performed whatsoever unless 
you specifically add it.

For member variables that are of a class, the default constructor will be 
called on it if you do not explicitly call a constructor, so leaving QString 
or other Q* members uninitialized should be "safe" since they will be 
initialized by their default constructor.

That auto-initialization to garbage sounds interesting though, I wonder if we 
could convince the gcc guys to add a debugging switch for it. :)

Regards,
 - Michael Pyne
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20051119/56d969b9/attachment.sig>


More information about the kde-core-devel mailing list