কনস্ট্রাক্টর হলো একটি ক্লাসের ফাংশন যা ক্লাসের নতুন অবজেক্ট তৈরি হলে এক্সিকিউট হয়। কনস্ট্রাক্টরদের ক্লাসের মতো একই নাম থাকে এবং কোনো রিটার্ন টাইপ নেই, void-ও নেই। এগুলো মূলত ক্লাসের ভেরিয়েবলগুলোর প্রাথমিক মান দিতে ব্যবহৃত হয়। কনস্ট্রাক্টরের দুটি প্রধান প্রকার হলো ডিফল্ট কনস্ট্রাক্টর এবং প্যারামিটারাইজড কনস্ট্রাক্টর।
ডিফল্ট কনস্ট্রাক্টর কোনো প্যারামিটার নেয় না। যদি প্রোগ্রামার স্পষ্টভাবে ডিফল্ট কনস্ট্রাক্টর প্রদান না করে, তবে কম্পাইলার একটি ইমপ্লিসিট ডিফল্ট কনস্ট্রাক্টর প্রদান করে। সেক্ষেত্রে, ভেরিয়েবলগুলোর ডিফল্ট মান ০ হয়।
ডিফল্ট কনস্ট্রাক্টর প্রদর্শন করে এমন একটি প্রোগ্রাম নিচে দেওয়া হলো:
উদাহরণ
#include <iostream>
using namespace std;
class DemoDC {
private:
int num1, num2;
public:
DemoDC() {
num1 = 10;
num2 = 20;
}
void display() {
cout << "num1 = " << num1 << endl;
cout << "num2 = " << num2 << endl;
}
};
int main() {
DemoDC obj;
obj.display();
return 0;
}
আউটপুট
num1 = 10 num2 = 20
উপরোক্ত প্রোগ্রামে, DemoDC ক্লাসে একটি ডিফল্ট কনস্ট্রাক্টর রয়েছে যা num1 এবং num2-কে ১০ এবং ২০ হিসেবে ইনিশিয়ালাইজ করে। এতে একটি display() ফাংশনও রয়েছে যা num1 এবং num2-এর মান প্রিন্ট করে। এর কোড স্নিপেট নিচে দেওয়া হলো:
class DemoDC {
private:
int num1, num2;
public:
DemoDC() {
num1 = 10;
num2 = 20;
}
void display() {
cout << "num1 = " << num1 << endl;
cout << "num2 = " << num2 << endl;
}
};
main() ফাংশনে DemoDC ক্লাস টাইপের একটি অবজেক্টের ডেফিনিশন রয়েছে। তারপর display() ফাংশনটি কল করা হয়েছে। এটি নিচে দেখানো হলো:
DemoDC obj; obj.display();