1️⃣ What is a Member Initializer List?
A Member Initializer List allows us to initialize multiple class members before the constructor body executes, leading to better efficiency.
🔹 Why Use Multiple Value Member Initializer List?
✅ Faster than assigning inside the constructor
✅ Supports const
and reference members
✅ Ensures initialization order
2️⃣ Syntax of Multiple Value Member Initializer List
class ClassName {
private:
int a;
double b;
string c;
public:
ClassName(int x, double y, string z) : a(x), b(y), c(z) {
// Constructor body (optional)
}
};
3️⃣ Example: Initializing Multiple Values
#include <iostream>
using namespace std;
class Student {
private:
string name;
int age;
double marks;
public:
// Using Member Initializer List for multiple variables
Student(string n, int a, double m) : name(n), age(a), marks(m) {
cout << "Name: " << name << ", Age: " << age << ", Marks: " << marks << endl;
}
};
int main() {
Student s1("Alice", 20, 89.5);
Student s2("Bob", 22, 76.0);
return 0;
}
🔹 Output
Name: Alice, Age: 20, Marks: 89.5
Name: Bob, Age: 22, Marks: 76.0
4️⃣ Example: Initializing const
and Reference Members
#include <iostream>
using namespace std;
class Test {
private:
const int x; // Constant member
int &y; // Reference member
double z; // Regular member
public:
// Member Initializer List for multiple members
Test(int a, int &b, double c) : x(a), y(b), z(c) {
cout << "x: " << x << ", y: " << y << ", z: " << z << endl;
}
};
int main() {
int num = 50;
Test obj(10, num, 25.5);
return 0;
}
🔹 Output
x: 10, y: 50, z: 25.5
✅ Why is Member Initializer List required?
✔ const int x
must be initialized at declaration.
✔ int &y
requires a reference to an existing variable.
5️⃣ Key Takeaways
✔ Multiple variables can be initialized at once, improving efficiency.
✔ Required for const
and reference members.
✔ Ensures variables are initialized in the order they are declared in the class.
Would you like an example with inheritance and initializer lists? 🚀
0 Comments