Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: All
Jun 4, 1998



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Constructors and destructors should be minimal

When designing a class, you should remember that one day it may serve as a base class for other classes. When deriving a class from a base, the base's destructor and constructor(s) are implicitly copied into the derived class constructor(s) and destructor, respectively. As opposed to ordinary member functions, which can be overridden (provided they are virtual) or simply not called, base's constructor(s) and destructor are automatically invoked. So it's a good idea not to force derived objects to pay for what they don't want, but are forced to use. In other words, constructors and destructors should contain the minimal functionality needed to construct an object and destroy it, but nothing more. For instance, a string class that supports serialization (writing its contents to a file) should not open/create a file in its constructor. This should be left to a dedicated member function, so when a new derived class, such as ShortString (used to hold fixed length strings, such as file names), is created, its constructor will not be forced to perform any superfluous file I/O which was inherited from the base class.
Danny Kalev
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date