এই পোস্টে, আমরা C++ এ ফাংশন ওভারলোডিং এবং ফাংশন ওভাররাইডিংয়ের মধ্যে পার্থক্য বুঝতে পারব।
ওভারলোডিং
-
ওভারলোডিংয়ের সময় কোন কীওয়ার্ড ব্যবহার করা হয় না।
-
প্রোটোটাইপ শুধুমাত্র সংখ্যা বা প্যারামিটারের প্রকারের উপর ভিত্তি করে পৃথক হয়।
-
এটি কম্পাইলের সময় ঘটে।
-
কনস্ট্রাক্টর ওভারলোড হতে পারে।
-
ধ্বংসকারীকে ওভারলোড করা যাবে না।
-
এটি প্রারম্ভিক বাঁধাই অর্জন করতে ব্যবহার করা যেতে পারে।
-
কল করা ফাংশনের সংস্করণটি ব্যবহৃত হওয়া প্যারামিটারের সংখ্যা বা প্রকার দ্বারা নির্ধারিত হয়।
-
ফাংশনগুলি একই নাম, ভিন্ন সংখ্যা বা পরামিতির ধরন দিয়ে পুনরায় সংজ্ঞায়িত করা হবে।
ওভাররাইডিং
-
প্রোটোটাইপ জুড়ে একই থাকে।
-
এটি রানটাইমে ঘটে।
-
ভার্চুয়াল ফাংশন ওভাররাইড করা যাবে না।
-
ধ্বংসকারীকে ওভাররাইড করা যেতে পারে।
-
ওভাররাইডিং লেট বাইন্ডিং নামেও পরিচিত।
-
যে ফাংশনটি ওভাররাইড করা হবে সেটি বেস ক্লাসে 'ভার্চুয়াল' কীওয়ার্ডের আগে থাকে।
-
ক্লাসের অবজেক্টের ঠিকানা পয়েন্টারকে বরাদ্দ করা হয় যার ফাংশন পয়েন্টার দ্বারা কল করা হয়।
-
যখন ফাংশনটি সংজ্ঞায়িত করা হয়, তখন এটি প্রধান শ্রেণিতে 'ভার্চুয়াল' কীওয়ার্ড দ্বারা পূর্বে থাকে।
-
'আউট' কীওয়ার্ড ব্যবহার করে প্রাপ্ত শ্রেণীতে একই ফাংশন পুনরায় সংজ্ঞায়িত করা হয়েছে।