কম্পিউটার টিউটোরিয়াল

C++-এ ইউনিফর্ম ইনিশিয়ালাইজেশন (Uniform Initialization)


ভূমিকা

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)
  1. C++-এ ডায়াগোনাল ট্রায়ভার্স II

  2. প্রসেস কিল করা (Kill Process) C++-এ

  3. স্কোয়ারেল সিমুলেশন (Squirrel Simulation) C++-এ

  4. C++-এ আয়তাকার এলাকা II (Rectangle Area II) সমাধান