পলিমরফিজম অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং-এর একটি মূল বৈশিষ্ট্য যার অর্থ একাধিক রূপ ধারণ করা। C++-এ এটি কম্পাইল-টাইম পলিমরফিজম এবং রান-টাইম পলিমরফিজমে ভাগ করা হয়।
কম্পাইল-টাইম পলিমরফিজমের একটি উদাহরণ হল ফাংশন ওভারলোডিং বা অপারেটর ওভারলোডিং। রান-টাইম পলিমরফিজমের একটি উদাহরণ হল ফাংশন ওভাররাইডিং।
C++-এ ফাংশন ওভারলোডিং ব্যবহার করে পলিমরফিজমের একটি উদাহরণ নিচে দেওয়া হল।
উদাহরণ
#include <iostream>
using namespace std;
class Example {
public:
void func(int a) {
cout << "\nThe value of a: " << a;
}
void func(int a, int b) {
cout << "\nThe value of a: " << a;
cout << "\nThe value of b: " << b;
}
void func(char c) {
cout << "\nThe value of c: " << c;
}
};
int main() {
Example obj;
cout << "\nOne int value";
obj.func(5);
cout << "\nOne char value";
obj.func('A');
cout << "\nTwo int values";
obj.func(7, 2);
return 0;
}
আউটপুট
উপরোক্ত প্রোগ্রামের আউটপুট নিম্নরূপ।
One int value The value of a: 5 One char value The value of c: A Two int values The value of a: 7 The value of b: 2
এখন, আসুন উপরের প্রোগ্রামটি বুঝি।
Example ক্লাসের মেম্বার ফাংশন func() ওভারলোডেড। তিনটি ভিন্ন প্যারামিটার সহ func() ফাংশন আছে যা প্রয়োজন অনুযায়ী নির্বাচন করা যায়। এর কোড স্নিপেট নিচে দেওয়া হল।
class Example {
public:
void func(int a) {
cout << "\nThe value of a: " << a;
}
void func(int a, int b) {
cout << "\nThe value of a: " << a;
cout << "\nThe value of b: " << b;
}
void func(char c) {
cout << "\nThe value of c: " << c;
}
};
main() ফাংশনে, Example ক্লাসের একটি অবজেক্ট obj তৈরি করা হয়েছে। ফাংশন ওভারলোডিং প্রদর্শন করার জন্য func() ফাংশনটি ভিন্ন আর্গুমেন্টসহ কল করা হয়েছে। এর কোড স্নিপেট নিচে দেওয়া হল।
int main() {
Example obj;
cout << "\nOne int value";
obj.func(5);
cout << "\nOne char value";
obj.func('A');
cout << "\nTwo int values";
obj.func(7, 2);
return 0;
}