কম্পিউটার টিউটোরিয়াল

পলিমরফিজমের প্রকারভেদ - অ্যাড-হক, ইনক্লুশন, প্যারামেট্রিক ও কোэрসন


এখানে আমরা পলিমরফিজমের বিভিন্ন প্রকারভেদ দেখব। প্রকারগুলো হলো −

  • অ্যাড-হক (Ad-Hoc)
  • ইনক্লুশন (Inclusion)
  • প্যারামেট্রিক (Parametric)
  • কোэрসন (Coercion)

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

উদাহরণ

#include<iostream> using namespace std; int add(int a, int b) {    return a + b; } string add(string a, string b) {    return a + b; // কনক্যাটিনেশন } int main() {    cout << "Addition of numbers: " << add(2, 7) << endl;    cout << "Addition of Strings: " << add("hello", "World") << endl; }

আউটপুট

Addition of numbers: 9 Addition of Strings: helloWorld

ইনক্লুশন পলিমরফিজম কে সাবটাইপিং বলা হয়। এটি বেস ক্লাস পয়েন্টার ও রেফারেন্স দিয়ে ডেরাইভড ক্লাসের অবজেক্ট নির্দেশ করতে দেয়। এটি রানটাইম পলিমরফিজম। সি++-তে ভার্চুয়াল ফাংশন দিয়ে এটি অর্জন করা হয়।

উদাহরণ

#include<iostream> using namespace std; class Base {    public:       virtual void print() {          cout << "This is base class." << endl;       } }; class Derived : public Base {    public:       void print() {          cout << "This is derived class." << endl;       } }; int main() {    Base *ob1;    Base base_obj;    Derived derived_obj;    ob1 = &base_obj; // বেস ক্লাস অবজেক্ট    ob1->print();    ob1 = &derived_obj; // একই পয়েন্টার দিয়ে ডেরাইভড অবজেক্ট    ob1->print(); }

আউটপুট

This is base class. This is derived class.

কোэрসন পলিমরফিজম কে কাস্টিং বলা হয়। এটি তখন হয় যখন একটি অবজেক্ট বা প্রিমিটিভ অন্য টাইপে কাস্ট করা হয়। কাস্টিং দুই প্রকার: ইমপ্লিসিট কাস্টিং কম্পাইলার নিজে করে, আর এক্সপ্লিসিট কাস্টিং const_cast, dynamic_cast ইত্যাদি দিয়ে করা হয়।

উদাহরণ

#include<iostream> using namespace std; class Integer {    int val;    public:       Integer(int x) : val(x) {    }    operator int() const {       return val;    } }; void display(int x) {    cout << "Value is: " << x << endl; } int main() {    Integer x = 50;    display(100);    display(x); }

আউটপুট

Value is: 100 Value is: 50

প্যারামেট্রিক পলিমরফিজম কে অর্লি বাইন্ডিং বলা হয়। এটি একই কোড টুকরোকে ভিন্ন টাইপের জন্য ব্যবহার করতে দেয়। সি++-তে টেমপ্লেট দিয়ে এটি পাওয়া যায়।

উদাহরণ

#include<iostream> using namespace std; template <class T> T maximum(T a, T b) {    if(a > b) {       return a;    } else {       return b;    } } int main() {    cout << "Max of (156, 78): " << maximum(156, 78) << endl;    cout << "Max of (A, X): " << maximum('A', 'X') << endl; }

আউটপুট

Max of (156, 78): 156 Max of (A, X): X

  1. DBMS-এ নির্ভরতার প্রকারভেদ

  2. C প্রোগ্রামে এক্সপ্রেশনের বিভিন্ন ধরন ব্যাখ্যা

  3. সি ভাষায় প্রাইমারি ডেটা টাইপ (Primary Data Types) কী?

  4. C/C++-তে আর্গুমেন্ট কোয়ার্শন (Argument Coercion)