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

সি++-এ ফাংশন ওভারলোডিং এবং ওভাররাইডিং-এর পার্থক্য

এই পোস্টে, আমরা সি++-এ ফাংশন ওভারলোডিং (Function Overloading) এবং ফাংশন ওভাররাইডিং (Function Overriding)-এর মধ্যে পার্থক্য বুঝব।

ওভারলোডিং (Overloading)

  • ওভারলোডিং-এর সময় কোনো কীওয়ার্ড ব্যবহার করা হয় না।
  • প্রোটোটাইপ শুধু প্যারামিটারের সংখ্যা বা টাইপের উপর ভিত্তি করে ভিন্ন হয়।
  • এটি কম্পাইল টাইমে ঘটে।
  • কনস্ট্রাক্টর ওভারলোড করা যায়।
  • ডিস্ট্রাক্টর ওভারলোড করা যায় না।
  • এটি আর্লি বাইনডিং (early binding) অর্জনে সাহায্য করে।
  • কল করা ফাংশনের ভার্সন প্যারামিটারের সংখ্যা বা টাইপ দ্বারা নির্ধারিত হয়।
  • ফাংশনগুলো একই নাম지만 ভিন্ন সংখ্যা বা টাইপের প্যারামিটার দিয়ে পুনরায় ডিফাইন করা হয়।

ওভাররাইডিং (Overriding)

  • প্রোটোটাইপ সব সময় একই থাকে।
  • এটি রানটাইমে ঘটে।
  • ভার্চুয়াল ফাংশন ওভাররাইড করা যায় না।
  • ডিস্ট্রাক্টর ওভাররাইড করা যায়।
  • ওভাররাইডিংকে লেট বাইনডিং (late binding) ও বলা হয়।
  • বেস ক্লাসে ওভাররাইড হওয়া ফাংশনটি 'virtual' কীওয়ার্ড দিয়ে চিহ্নিত করা হয়।
  • ক্লাসের অবজেক্টের অ্যাড্রেস পয়েন্টারে এসাইন করা হয়, যার ফাংশনটি পয়েন্টার দ্বারা কল করা হয়।
  • ফাংশন ডিফাইন করার সময় বেস ক্লাসে 'virtual' কীওয়ার্ড থাকে।
  • একই ফাংশন ডেরাইভড ক্লাসে 'override' কীওয়ার্ড দিয়ে পুনরায় ডিফাইন করা হয়।
  1. C++-এ string এবং char[] টাইপের পার্থক্য

  2. C++-এ struct এবং typedef struct-এর পার্থক্য

  3. C++-এ new অপারেটর এবং operator new-এর পার্থক্য কী?

  4. C#-তে মেথড (Method) এবং ফাংশন (Function) এর পার্থক্য