Single Value Member Initializer List in C++

 


1️⃣ What is a Member Initializer List?

A Member Initializer List in C++ is a way to initialize class members directly when the constructor is called, instead of assigning values inside the constructor body.

🔹 Why Use Member Initializer List?

✅ Faster execution (Directly initializes, avoiding extra assignment)
✅ Mandatory for const and reference members
✅ Preferred for initializing base class members in inheritance


2️⃣ Syntax of Member Initializer List

class ClassName {
private:
    int value;

public:
    ClassName(int val) : value(val) {  // Member Initializer List
    }
};

3️⃣ Example: Single Value Member Initializer List

#include <iostream>
using namespace std;

class Student {
private:
    string name;

public:
    // Using Member Initializer List
    Student(string n) : name(n) {
        cout << "Student Name: " << name << endl;
    }
};

int main() {
    Student s1("Alice");  // Object creation with initializer list

    return 0;
}

🔹 Output

Student Name: Alice

4️⃣ Example: Initializing const and Reference Members

#include <iostream>
using namespace std;

class Test {
private:
    const int x;  // Constant member
    int &y;       // Reference member

public:
    // Member Initializer List is REQUIRED for const & reference
    Test(int a, int &b) : x(a), y(b) {
        cout << "x: " << x << ", y: " << y << endl;
    }
};

int main() {
    int num = 20;
    Test obj(10, num);  // Initializing object

    return 0;
}

🔹 Output

x: 10, y: 20

✅ Why is Member Initializer List needed here?
✔ const int x cannot be assigned later (must be initialized at declaration).
✔ int &y must be initialized with a valid reference.


5️⃣ Key Takeaways

✔ Faster & more efficient than assigning inside the constructor body.
✔ Required for const and reference members.
✔ Helps in better code readability & initialization.

Would you like an example with multiple initializations? 🚀

Post a Comment

0 Comments