Use Mem-initializer to Initialize Embedded Objects

Use Mem-initializer to Initialize Embedded Objects

If your class contains other object(s) as members, you should initialize the embedded object(s) in a mem-initializer list instead of assigning their values inside the class constructor:

 class Person {		string name, address; //embedded objects		int age;			//preferred way to initialize embedded objects:		Person(string n, string a) : name(n), address(a) {}};

Simple assignment or copy construction like the following:

 class Person {	string name, address;	Person(string n, string a) {name = n;	//very inefficient				address(a); } //ditto};

is significantly less efficient since each embedded object is constructed twice: first before any user-written code in Person’s constructor is executed, and second when the assignment/copy construction is executed. Mem-initialization ensures that each embedded object’s constructor is invoked only once.

Share the Post:
data observability

Data Observability Explained

Data is the lifeblood of any successful business, as it is the driving force behind critical decision-making, insight generation, and strategic development. However, due to its intricate nature, ensuring the

Heading photo, Metadata.

What is Metadata?

What is metadata? Well, It’s an odd concept to wrap your head around. Metadata is essentially the secondary layer of data that tracks details about the “regular” data. The regular