ভূমিকা
C++11 থেকে সমর্থিত ইউনিফর্ম ইনিশিয়ালাইজেশন একটি সुसঙ্গত সিনট্যাক্স প্রদান করে যেকোনো ভেরিয়েবল বা অবজেক্ট ইনিশিয়ালাইজ করার জন্য—প্রিমিটিভ টাইপ থেকে অ্যাগ্রিগেট ক্লাস পর্যন্ত। এটি ব্রেস-ইনিশিয়ালাইজেশন ({}) ব্যবহার করে।
সিনট্যাক্স
type var_name{argument_1, argument_2, ..., argument_n}
বিভিন্ন ব্যবহারের উদাহরণ
১. ডাইনামিক্যালি অ্যালোকেটেড অ্যারে ইনিশিয়ালাইজেশন
#include <bits/stdc++.h>
using namespace std;
int main() {
int* pointer = new int[5]{ 10, 20, 30, 40, 50 };
cout << "The contents of array are: ";
for (int i = 0; i < 5; i++)
cout << pointer[i] << " ";
}
The contents of array are: 10 20 30 40 50
২. ক্লাসের অ্যারে ডেটা মেম্বার ইনিশিয়ালাইজেশন
#include <iostream>
using namespace std;
class MyClass {
int arr[3];
public:
MyClass(int p, int q, int r) : arr{ p, q, r } {}
void display() {
cout << "The contents are: ";
for (int c = 0; c < 3; c++)
cout << *(arr + c) << ", ";
}
};
int main() {
MyClass ob(40, 50, 60);
ob.display();
}
The contents are: 40, 50, 60,
৩. রিটার্ন ভ্যালু হিসেবে অবজেক্ট ইমপ্লিসিটলি ইনিশিয়ালাইজেশন
#include <iostream>
using namespace std;
class MyClass {
int p, q;
public:
MyClass(int i, int j) : p(i), q(j) {}
void display() { cout << "(" << p << ", " << q << ")"; }
};
MyClass func(int p, int q) { return { p, q }; }
int main() {
MyClass ob = func(40, 50);
ob.display();
}
(40, 50)
৪. ফাংশন প্যারামিটার হিসেবে ইমপ্লিসিট ইনিশিয়ালাইজেশন
#include <iostream>
using namespace std;
class MyClass {
int p, q;
public:
MyClass(int i, int j) : p(i), q(j) {}
void display() { cout << "(" << p << ", " << q << ")"; }
};
void func(MyClass p) { p.display(); }
int main() { func({ 40, 50 }); }
(40, 50)