কনস্ট্রাক্টর (Constructor) এবং ডেস্ট্রাক্টর (Destructor) হলো C++ ক্লাসের বিশেষ ফাংশন। এদের মূল কাজ হলো অবজেক্ট তৈরি ও ধ্বংসের সময় নির্দিষ্ট কার্য সম্পাদন করা।
কনস্ট্রাক্টর হলো একটি বিশেষ ধরনের ফাংশন, যা ক্লাসের অবজেক্ট তৈরি হওয়ার সময় স্বয়ংক্রিয়ভাবে কল হয়। এটি সাধারণত ক্লাসের ডেটা মেম্বার ইনিশিয়ালাইজ করতে ব্যবহৃত হয়।
void
ও নয়।#include <iostream>
using namespace std;
class Car {
public:
string brand;
int year;
// ডিফল্ট কনস্ট্রাক্টর
Car() {
brand = "Unknown";
year = 0;
}
// প্যারামিটারাইজড কনস্ট্রাক্টর
Car(string b, int y) {
brand = b;
year = y;
}
void displayInfo() {
cout << "Brand: " << brand << ", Year: " << year << endl;
}
};
int main() {
Car car1; // ডিফল্ট কনস্ট্রাক্টর কল হবে
Car car2("Toyota", 2020); // প্যারামিটারাইজড কনস্ট্রাক্টর কল হবে
car1.displayInfo(); // Output: Brand: Unknown, Year: 0
car2.displayInfo(); // Output: Brand: Toyota, Year: 2020
return 0;
}
বর্ণনা:
Car
ক্লাসে দুটি কনস্ট্রাক্টর আছে। Car()
হলো ডিফল্ট কনস্ট্রাক্টর, যা car1
অবজেক্ট তৈরি করার সময় কল হয়েছে এবং Car(string b, int y)
হলো প্যারামিটারাইজড কনস্ট্রাক্টর, যা car2
অবজেক্ট তৈরি করার সময় কল হয়েছে।ডেস্ট্রাক্টর হলো একটি বিশেষ ফাংশন, যা অবজেক্ট ধ্বংস হওয়ার সময় স্বয়ংক্রিয়ভাবে কল হয়। এটি অবজেক্টের মেমোরি মুক্ত করতে বা ক্লিনআপ কার্য সম্পাদন করতে ব্যবহৃত হয়। C++ এ প্রতিটি ক্লাসের কেবলমাত্র একটি ডেস্ট্রাক্টর থাকতে পারে।
~
(টিল্ডা) চিহ্ন থাকে।#include <iostream>
using namespace std;
class Car {
public:
string brand;
int year;
// প্যারামিটারাইজড কনস্ট্রাক্টর
Car(string b, int y) {
brand = b;
year = y;
cout << "Constructor called for " << brand << endl;
}
// ডেস্ট্রাক্টর
~Car() {
cout << "Destructor called for " << brand << endl;
}
void displayInfo() {
cout << "Brand: " << brand << ", Year: " << year << endl;
}
};
int main() {
Car car1("Toyota", 2020);
Car car2("Honda", 2019);
car1.displayInfo();
car2.displayInfo();
return 0;
}
আউটপুট:
Constructor called for Toyota
Constructor called for Honda
Brand: Toyota, Year: 2020
Brand: Honda, Year: 2019
Destructor called for Honda
Destructor called for Toyota
বর্ণনা:
Car
ক্লাসে একটি ডেস্ট্রাক্টর ~Car()
তৈরি করা হয়েছে, যা অবজেক্ট ধ্বংস হওয়ার সময় স্বয়ংক্রিয়ভাবে কল হয়।car2
এবং car1
অবজেক্টের জন্য ডেস্ট্রাক্টর কল হয় এবং "Destructor called for Honda"
এবং "Destructor called for Toyota"
মেসেজ প্রিন্ট হয়।বৈশিষ্ট্য | কনস্ট্রাক্টর | ডেস্ট্রাক্টর |
---|---|---|
কাজ | অবজেক্ট তৈরি করার সময় ইনিশিয়ালাইজেশন করা | অবজেক্ট ধ্বংস করার সময় ক্লিনআপ করা |
নাম | ক্লাসের নামের মতো | ক্লাসের নামের আগে ~ চিহ্ন থাকে |
রিটার্ন টাইপ | রিটার্ন টাইপ নেই | রিটার্ন টাইপ নেই |
প্যারামিটার | প্যারামিটার থাকতে পারে | প্যারামিটার থাকতে পারে না |
ওভারলোডিং সমর্থন | ওভারলোডিং সমর্থন করে | ওভারলোডিং সমর্থন করে না |
common.read_more