C++ में हम फंक्शन्स को ओवरलोड कर सकते हैं। लेकिन कई बार ओवरलोडिंग नहीं होती है। इस खंड में, हम देखेंगे कि विभिन्न मामले क्या हैं, जिनमें हम कार्यों को अधिभारित नहीं कर सकते हैं।
-
जब फ़ंक्शन सिग्नेचर समान होते हैं, केवल रिटर्न प्रकार अलग होता है, तो हम फ़ंक्शन को ओवरलोड नहीं कर सकते।
int my_func() { return 5; } char my_func() { return 'd'; }
-
जब सदस्य फ़ंक्शन का एक ही नाम और एक ही पैरामीटर सूची एक वर्ग में होती है, तो उन्हें ओवरलोड नहीं किया जा सकता है।
class My_Class{ static void func(int x) { //Something } void func(int x) { //something } };
-
जब पैरामीटर घोषणा, जो केवल एक सूचक * में भिन्न होती है और एक सरणी [] समान होती है।
int my_func(int *arr) { //Do something } int my_func(int arr[]) { //do something }
-
जब पैरामीटर घोषणा, जो केवल स्थिर या अस्थिर क्वालीफायर की उपस्थिति में भिन्न होती है, समान होती है।
int my_func(int x) { //Do something } int my_func(const int x) { //do something }
-
जब पैरामीटर घोषणा, जो केवल उनके डिफ़ॉल्ट तर्कों में भिन्न होती है, समतुल्य होती है।
int my_func(int a, int b) { //Do something } int my_func(int a, int b = 50) { //do something }