C ++ ফাংশন ওভাররাইডিং

C Function Overriding



এই নিবন্ধে, আমরা C ++ প্রোগ্রামিং ভাষায় ফাংশন ওভাররাইডিং কভার করব। C ++ রানটাইম পলিমর্ফিজম সমর্থন করে।

ফাংশন ওভাররাইডিংয়ে, চাইল্ড ক্লাস ফাংশনটি পুনরায় সংজ্ঞায়িত করে যা ইতিমধ্যে তার মূল শ্রেণীতে সংজ্ঞায়িত করা হয়েছে।







এটি প্রোগ্রামারকে উৎপন্ন ক্লাস-নির্দিষ্ট কার্যকারিতা প্রদান করতে সক্ষম করে (যদিও এটি বেস ক্লাসে সংজ্ঞায়িত করা হয়েছে)।



এখন, আমরা কয়েকটি উদাহরণ দেখব এবং C ++ এ ফাংশন ওভাররাইডিং ধারণাটি বুঝতে পারব।



উদাহরণ -১

আমি নীচের উদাহরণ কোডে দুটি ক্লাস সংজ্ঞায়িত করেছি - একটি বেস ক্লাস এবং একটি প্রাপ্ত ক্লাস। বেস ক্লাসের একটি সদস্য ফাংশন আছে, যেমন, disp ()। Derived_Class Base_Class থেকে উত্তরাধিকার সূত্রে প্রাপ্ত। ডিসপ () ফাংশনটি Base_Class এ উপস্থিত থাকে এবং তারপর Derived_Class এ পুনরায় সংজ্ঞায়িত করা হয়।





প্রধান () ফাংশনে, Derived_Class- এর একটি বস্তু, অর্থাৎ, d তৈরি করা হয়। তারপরে, আমরা উদ্ভূত শ্রেণীর বস্তুতে disp () ফাংশনকে কল করি, তাই উদ্ভূত শ্রেণীর ফাংশনটি আহ্বান করা হবে। বেস ক্লাস সংস্করণ এখানে উপেক্ষা করা হয়। আপনি আউটপুটের নিচে দেখতে পারেন -

#অন্তর্ভুক্ত

নামস্থান std ব্যবহার করে;

// বেস ক্লাস
ক্লাস বেস_ক্লাস
{
জনসাধারণ:
শূন্যউপকৃত()
{
খরচ<< বেস ক্লাসে ডিসপ () ফাংশন। <<endl;
}

};

// উদ্ভূত শ্রেণী
ক্লাস Derived_Class:পাবলিক বেস_ক্লাস
{
জনসাধারণ:
শূন্যউপকৃত()
{
খরচ<< 'disp () ডেরিভেটেড ক্লাসে ফাংশন' <<endl;
}
};

intপ্রধান()
{
Derived_Class d;
ঘ।উপকৃত(); // disp () ডেরিভেড ক্লাস অবজেক্টে ফাংশন
প্রত্যাবর্তন 0;
}



উদাহরণ -২

এই উদাহরণে, আমরা দেখব কিভাবে ইচ্ছাকৃতভাবে ফাংশনের বেস ক্লাস সংস্করণকে ডেরিভেটেড ক্লাস অবজেক্টের মাধ্যমে কল করা যায়। প্রাপ্ত ক্লাস ফাংশন সংজ্ঞায়, আমরা ফাংশনের বেস ক্লাস সংস্করণকে কল করার জন্য স্কোপ রেজোলিউশন অপারেটর [::] ব্যবহার করি।

#অন্তর্ভুক্ত

নামস্থান std ব্যবহার করে;

ক্লাস বেস_ক্লাস
{
জনসাধারণ:
শূন্যউপকৃত()
{
খরচ<< বেস ক্লাসে ডিসপ () ফাংশন। <<endl;
}

};

ক্লাস Derived_Class:পাবলিক বেস_ক্লাস
{
জনসাধারণ:
শূন্যউপকৃত()
{
বেস_ক্লাস::উপকৃত(); // disp () এর বেস ক্লাস সংস্করণ কল করুন
}
};

intপ্রধান()
{
Derived_Class d;
ঘ।উপকৃত();
প্রত্যাবর্তন 0;
}

উদাহরণ-3

এটি ফাংশন ওভাররাইডিংয়ের আরেকটি উদাহরণ। এই উদাহরণে, আমরা একটি অভিভাবক শ্রেণী তৈরি করেছি - প্রাণী এবং দুটি প্রাপ্ত শ্রেণী - হাঁস এবং কুকুর। বেস ক্লাস, অর্থাৎ, পশু শ্রেণীর, একটি সদস্য ফাংশন সাউন্ড () আছে।

উদ্ভূত শ্রেণী/শিশু শ্রেণীতে, অর্থাৎ, কুকুর, আমরা একই ফাংশন, অর্থাৎ, সাউন্ড (), এর বেস ক্লাসের সংজ্ঞাটি ওভাররাইড করার জন্য পুনরায় সংজ্ঞায়িত করেছি। একইভাবে, অন্যান্য উদ্ভূত শ্রেণীতে, যেমন, হাঁস, আমরা একই ফাংশনকে পুনরায় সংজ্ঞায়িত করেছি, যেমন, শব্দ ()।

প্রধান () ফাংশনে, আমরা কুকুর এবং হাঁসের হাঁসের কুকুর বস্তু তৈরি করেছি। সুতরাং, এখন যখন আমরা কুকুর এবং হাঁসের জন্য সাউন্ড () ফাংশনকে কল করি, তখন সাউন্ড () ফাংশনের উদ্ভূত ক্লাস সংস্করণটি কল করবে। নীচে দেখানো হিসাবে আপনি প্রোগ্রামের আউটপুট দেখতে পারেন। সুতরাং, ফাংশন ওভাররাইডিংয়ের সাহায্যে, আমরা উদ্ভূত শ্রেণী-নির্দিষ্ট ফাংশনকে আহ্বান করতে পারি।

#অন্তর্ভুক্ত

নামস্থান std ব্যবহার করে;

শ্রেণী পশু
{
জনসাধারণ:
শূন্যশব্দ()
{
খরচ<< 'পশুর শব্দ!' <<endl;
}

};

// ডেরিভেড ক্লাস - কুকুর ক্লাস
ক্লাস কুকুর:পাবলিক পশু
{
জনসাধারণ:
শূন্যশব্দ()
{
খরচ<< 'কুকুর শব্দ - ছাল।' <<endl;
}
};

// ডেরিভেড ক্লাস - হাঁসের ক্লাস
ক্লাস হাঁস:পাবলিক পশু
{
জনসাধারণ:
শূন্যশব্দ()
{
খরচ<< 'হাঁসের শব্দ - কোক।' <<endl;
}
};


intপ্রধান()
{
কুকুর কুকুর;
হাঁস হাঁস;

কুকুর.শব্দ(); // কুকুরের শব্দ ()
হাঁস.শব্দ(); // হাঁসের শব্দ ()

প্রত্যাবর্তন 0;
}

উপসংহার

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