सी ++ में, हम कार्यों को अधिभारित कर सकते हैं। कुछ कार्य सामान्य कार्य हैं; कुछ स्थिर प्रकार के कार्य हैं। आइए निरंतर कार्यों और सामान्य कार्यों के बारे में विचार प्राप्त करने के लिए एक प्रोग्राम और उसके आउटपुट को देखें।
उदाहरण
#include <iostream> using namespace std; class my_class { public: void my_func() const { cout << "Calling the constant function" << endl; } void my_func() { cout << "Calling the normal function" << endl; } }; int main() { my_class obj; const my_class obj_c; obj.my_func(); obj_c.my_func(); }
आउटपुट
Calling the normal function Calling the constant function
यहां हम देख सकते हैं कि जब वस्तु सामान्य होती है तो सामान्य कार्य कहा जाता है। जब वस्तु स्थिर होती है, तब स्थिरांक फलन कहलाते हैं।
यदि दो अतिभारित विधियों में पैरामीटर हैं, और एक पैरामीटर सामान्य है, दूसरा स्थिर है, तो यह त्रुटि उत्पन्न करेगा।
उदाहरण
#include <iostream> using namespace std; class my_class { public: void my_func(const int x) { cout << "Calling the function with constant x" << endl; } void my_func(int x){ cout << "Calling the function with x" << endl; } }; int main() { my_class obj; obj.my_func(10); }
आउटपुट
[Error] 'void my_class::my_func(int)' cannot be overloaded [Error] with 'void my_class::my_func(int)'
लेकिन अगर तर्क संदर्भ या सूचक प्रकार हैं, तो यह त्रुटि उत्पन्न नहीं करेगा।
उदाहरण
#include <iostream> using namespace std; class my_class { public: void my_func(const int *x) { cout << "Calling the function with constant x" << endl; } void my_func(int *x) { cout << "Calling the function with x" << endl; } }; int main() { my_class obj; int x = 10; obj.my_func(&x); }
आउटपुट
Calling the function with x