devxlogo

Avoid Empty Member Initialization Lists

Avoid Empty Member Initialization Lists

Following yesterday’s tip, here’s another deprecated habit that programmers should avoid. Consider the following class hierarchy:

 class base{public:  base();};class derived: public base{public: derived() : base() {/*some code*/} // superfluous};


The member initialization list of class derived doesn’t really initialize anything. In fact, it merely invokes the default constructor of the base class. However, this is superfluous. Had we omitted the member initialization list in this case (or eliminated the constructor of derived altogether), the compiler would have synthesized a default constructor for class derived. The synthesized constructor automatically invokes the base class’s constructor. As you can see, this is another violation of the

devxblackblue

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