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

C++-এ কনস্ট্রাক্টর


কনস্ট্রাক্টর হলো একটি ক্লাসের ফাংশন যা ক্লাসের নতুন অবজেক্ট তৈরি হলে এক্সিকিউট হয়। কনস্ট্রাক্টরদের ক্লাসের মতো একই নাম থাকে এবং কোনো রিটার্ন টাইপ নেই, void-ও নেই। এগুলো মূলত ক্লাসের ভেরিয়েবলগুলোর প্রাথমিক মান দিতে ব্যবহৃত হয়।

কনস্ট্রাক্টরের দুটি প্রধান প্রকার হলো ডিফল্ট কনস্ট্রাক্টর এবং প্যারামিটারাইজড কনস্ট্রাক্টর। এগুলোর বিস্তারিত নিচে দেওয়া হলো:

ডিফল্ট কনস্ট্রাক্টর

ডিফল্ট কনস্ট্রাক্টর কোনো প্যারামিটার নেয় না। যদি প্রোগ্রামার স্পষ্টভাবে ডিফল্ট কনস্ট্রাক্টর প্রদান না করে, তবে কম্পাইলার একটি ইমপ্লিসিট ডিফল্ট কনস্ট্রাক্টর প্রদান করে। সেক্ষেত্রে, ভেরিয়েবলগুলোর ডিফল্ট মান ০ হয়।

ডিফল্ট কনস্ট্রাক্টর প্রদর্শন করে এমন একটি প্রোগ্রাম নিচে দেওয়া হলো:

উদাহরণ

#include <iostream>
using namespace std;

class A {
private:
    int num1, num2;
public:
    A() {
        num1 = 5;
        num2 = 7;
    }
    void display() {
        cout << "num1 = " << num1 << endl;
        cout << "num2 = " << num2 << endl;
    }
};

int main() {
    A obj;
    obj.display();
    return 0;
}

আউটপুট

num1 = 5
num2 = 7

উপরোক্ত প্রোগ্রামে, A ক্লাসে একটি ডিফল্ট কনস্ট্রাক্টর রয়েছে যা num1 এবং num2-কে ৫ এবং ৭ হিসেবে ইনিশিয়ালাইজ করে। এতে একটি display() ফাংশনও রয়েছে যা num1 এবং num2-এর মান প্রিন্ট করে। এর কোড স্নিপেট নিচে দেওয়া হলো:

class A {
private:
    int num1, num2;
public:
    A() {
        num1 = 5;
        num2 = 7;
    }
    void display() {
        cout << "num1 = " << num1 << endl;
        cout << "num2 = " << num2 << endl;
    }
};

main() ফাংশনে A ক্লাস টাইপের একটি অবজেক্টের ডেফিনিশন রয়েছে। তারপর display() ফাংশনটি কল করা হয়েছে। এটি নিচে দেখানো হলো:

A obj;
obj.display();

প্যারামিটারাইজড কনস্ট্রাক্টর

প্যারামিটারাইজড কনস্ট্রাক্টর অবজেক্ট তৈরি হলে সেটিকে ইনিশিয়ালাইজ করার জন্য আর্গুমেন্ট নিতে পারে। প্যারামিটার প্যারামিটারাইজড কনস্ট্রাক্টরে ঠিক নরমাল ফাংশনের মতোই যোগ করা হয়। প্যারামিটারাইজড কনস্ট্রাক্টর ইমপ্লিসিট বা এক্সপ্লিসিটভাবে কল করা যায়।

প্যারামিটারাইজড কনস্ট্রাক্টর প্রদর্শন করে এমন একটি প্রোগ্রাম নিচে দেওয়া হলো:

উদাহরণ

#include <iostream>
using namespace std;

class A {
private:
    int num1, num2;
public:
    A(int n1, int n2) {
        num1 = n1;
        num2 = n2;
    }
    void display() {
        cout << "num1 = " << num1 << endl;
        cout << "num2 = " << num2 << endl;
    }
};

int main() {
    A obj(3, 8);
    obj.display();
    return 0;
}

আউটপুট

num1 = 3
num2 = 8

উপরোক্ত প্রোগ্রামে, A ক্লাসে একটি প্যারামিটারাইজড কনস্ট্রাক্টর রয়েছে যা n1 এবং n2 দ্বারা প্রদত্ত মান দিয়ে num1 এবং num2 ইনিশিয়ালাইজ করে। এতে একটি display() ফাংশনও রয়েছে যা num1 এবং num2-এর মান প্রিন্ট করে। এর কোড স্নিপেট নিচে দেওয়া হলো:

class A {
private:
    int num1, num2;
public:
    A(int n1, int n2) {
        num1 = n1;
        num2 = n2;
    }
    void display() {
        cout << "num1 = " << num1 << endl;
        cout << "num2 = " << num2 << endl;
    }
};

main() ফাংশনে A ক্লাস টাইপের একটি অবজেক্টের ডেফিনিশন রয়েছে। তারপর display() ফাংশনটি কল করা হয়েছে। এটি নিচে দেখানো হলো:

A obj(3, 8);
obj.display();

  1. C++ প্রোগ্রাম: বিটওয়াইজ অপারেটর ব্যবহার করে যোগ করা

  2. C++-এ ডিফল্ট কনস্ট্রাক্টর

  3. C++-এ ডিস্ট্রাক্টর

  4. C++-এ কপি কনস্ট্রাক্টর