কম্পিউটার

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


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

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

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

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

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

উদাহরণ

#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 কে 5 এবং 7 হিসাবে শুরু করে। এটিতে একটি ফাংশন ডিসপ্লে() রয়েছে যা 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() ক্লাস টাইপের একটি অবজেক্টের জন্য অবজেক্টের সংজ্ঞা ধারণ করে। তারপর ফাংশন 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 শুরু করে। এটিতে একটি ফাংশন ডিসপ্লে() রয়েছে যা 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() ক্লাস টাইপের একটি অবজেক্টের জন্য অবজেক্টের সংজ্ঞা ধারণ করে। তারপর ফাংশন display() বলা হয়। এটি নীচে দেখানো হয়েছে৷

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

  1. বিটওয়াইজ অপারেটর ব্যবহার করে সংযোজন অপারেশন সম্পাদনের জন্য C++ প্রোগ্রাম

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

  3. C++ এ ধ্বংসকারী

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