একই নামের function এ যখন একেক সময় অনেক ধরণের parameter ব্যবহার করা হয় তখন সেটিকে function overloading বলা হয়। যেমন আমরা এখানে কারো ঠিকানা/address এর জন্য একবার শুধু city আর আরেকবার city ও house দেখতে চাই। এজন্য adds() নামের একটি function এ আমরা city নামের একটি parameter আবার একই adds() নামের আরেকটি function এ city এবং house নামের দুইটি parameter দিতে পারি। parameter এর সংখ্যার উপর নির্ভর করে ঠিক adds() function এর argument/data গুলো screen এ দেখাবে show () নামের method/function। নিচে C++ এ function overloading এর উদাহরণটি দেয়া হল।
#include ‹iostream›
#include ‹string›
class Demo{
public:
std::string c,h;
Demo(){}
void adds(city){
this.c=city;
}
void adds(city,house){
this.c=city;
this.h=house;
}
void show(){
std::cout«this.c«" "«this.h«" \n";
}
}
int main(){
Demo s;
s.adds("Utoville");
s.show ();
return 0;
}
JavaScript এ function overloading কাজ করে না; কাজ করে function overriding। একই উদাহরণ JavaScript এ চালালে screen এ দেখা যাবে "Utoville undefined" বার্তা/text। কারণ হল দু'টি parameter সহ পরের adds() function এক্ষেত্রে প্রথম adds() function কে override করে কাজ করছে। আর তাই পরের adds() এর দ্বিতীয় parameter যা দেয়া হয়নি সেটিও undefined রুপে screen এ দেখা যাচ্ছে।JavaScript এ function overloading পেতে হলে একটু অন্য ভাবে কাজ করতে হবে। এখানে switch statement এর ব্যবহার দেখানো হয়েছে। adds() function টিতে ৩টি parameter c,h,ops দেয়া হয়েছে। ops হচ্ছে একটি integer argument যা parameter এর সংখ্যা নির্দেশ করছে। ops বা option এর সংখ্যার উপর নির্ভর করে show() ঠিক বার্তা screen এ দেখাচ্ছে। এক্ষেত্রে আমাদের ৩টি arguments pass করতে হচ্ছে আর কোন argument দেখাতে না চাইলে সেটি blank রাখতে হচ্ছে । আর এক্ষেত্রে কিন্তু আগেরবারের মত undefined দেখা যাচ্ছে না।
উদাহরণ:
class Demo{
constructor(){}
adds(c,h,ops){
this.c=c;
this.h=h;
this.ops=ops;
}
show (){
switch (this.ops)
{
case 1:
return this.c;
case 2:
return this.c+" "+this.h;
default:
return " Sorry ,not defined!";
}
}
}
var s=new Demo();
s.adds("Utoville","00", 2);
document.write(s.show());
কৃতজ্ঞতাঃ এই লেখা তৈরি করতে দরকারি তথ্য নেয়া হয়েছে Wikipedia, internet ও আমার তৈরি করা নানা program থেকে।
মন্তব্য ও যোগাযোগঃ mrh4478@gmail.com
No comments:
Post a Comment