Constructors and destructors should be minimal

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.


About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist