সি++-এ আমরা ফাংশন ওভারলোড করতে পারি। কিন্তু কখনও কখনও ওভারলোডিং সম্ভব নয়। এই বিভাগে আমরা দেখব কোন কোন পরিস্থিতিতে ফাংশন ওভারলোড করা যায় না।
যখন ফাংশন সিগনেচার একই থাকে, শুধু রিটার্ন টাইপ ভিন্ন থাকে, তখন ফাংশন ওভারলোড করা যায় না।
int my_func() { return 5; }
char my_func() { return 'd'; }
যখন একটি ক্লাসে সদস্য ফাংশনগুলো একই নাম এবং একই প্যারামিটার লিস্ট রাখে, তবে সেগুলো ওভারলোড করা যায় না।
class My_Class{
static void func(int x) { /* কয়েকটি কাজ */ }
void func(int x) { /* কিছু কাজ */ }
};
যখন প্যারামিটার ডিক্লেরেশন শুধু পয়েন্টার
*এবং অ্যারে[]-এ পার্থক্য রাখে, তবে সেগুলো একই মाना হয়।
int my_func(int *arr) { /* কিছু করুন */ }
int my_func(int arr[]) { /* কিছু করুন */ }
যখন প্যারামিটার ডিক্লেরেশন শুধু
constবাvolatileকোয়ালিফায়ারের উপস্থিতিতে পার্থক্য রাখে, তবে সেগুলো একই মানা হয়।
int my_func(int x) { /* কিছু করুন */ }
int my_func(const int x) { /* কিছু করুন */ }
যখন প্যারামিটার ডিক্লেরেশন শুধু তাদের ডিফল্ট আর্গুমেন্টে পার্থক্য রাখে, তবে সেগুলো সমতুল্য মाना হয়।
int my_func(int a, int b) { /* কিছু করুন */ }
int my_func(int a, int b = 50) { /* কিছু করুন */ }