যে ভাবে ফাংশন ওভারলোডিং অবজেক্ট অরিয়েন্টেড ল্যাঙ্গুয়েজের একটি মূল বৈশিষ্ট্য, সে ভাবে আমরা একই নামের ফাংশন ব্যবহার করতে পারি যাদের প্যারামিটার সেট ভিন্ন। এখানে আমরা দেখব C++ ক্লাসের কন্সট্রাক্টর ওভারলোড করার পদ্ধতি। কন্সট্রাক্টর ওভারলোডিং-এর কিছু গুরুত্বপূর্ণ কনসেপ্ট আছে:
- ওভারলোডেড কন্সট্রাক্টরগুলোর একই নাম থাকতে হবে কিন্তু আর্গুমেন্ট সংখ্যা ভিন্ন হতে হবে।
- কন্সট্রাক্টরটি কল হবে পাস করা আর্গুমেন্টের সংখ্যা এবং টাইপের উপর ভিত্তি করে।
- অবজেক্ট তৈরি করার সময় আর্গুমেন্ট পাস করতে হবে, অন্যথায় কন্সট্রাক্টর বুঝতে পারবে না কোন কন্সট্রাক্টর কল হবে।
উদাহরণ
#include <iostream>
using namespace std;
class Rect {
private:
int area;
public:
Rect() {
area = 0;
}
Rect(int a, int b) {
area = a * b;
}
void display() {
cout << "The area is: " << area << endl;
}
};
main() {
Rect r1;
Rect r2(2, 6);
r1.display();
r2.display();
}
আউটপুট
The area is: 0 The area is: 12