अस्थिरता पैरामीटर पर लागू किया जा सकता है, लेकिन यह पैरामीटर पर सीधे लागू होने पर ओवरलोडिंग का कारक नहीं है। पैरामीटर के प्रकारों को अलग करने के लिए इसका उपयोग करना संभव है। उदाहरण के लिए, यह कानूनी है:
void f(int &p) {}; //reference to int
void f(volatile int &p) {}; //reference to volatile int
यह नहीं है:
void f(int p) {};
void f(volatile int p) {};
कारण पहले उदाहरण में संदर्भ क्या नहीं अस्थिर है है, लेकिन पूर्णांक है। दूसरे उदाहरण में, दोनों प्रकार पूर्णांक हैं और इसलिए एक ही प्रकार हैं।
अस्थिर तरीके भी हैं। वे अस्थिर होने के लिए this
घोषित करने के समान हैं। क्योंकि this
एक सूचक और नहीं युक्त प्रकार ही है, निम्नलिखित भी कानूनी है:
void c::f(int p) {};
void c::f(int p) volatile {};
यह const
से अधिक भार के लिए के रूप में सभी एक ही है।
सी ++ मानक का यह प्रासंगिक हिस्सा §13.1 ओवरलोड करने योग्य घोषणा है। सी ++ 11 ड्राफ्ट n3290 से:
पैरामीटर घोषणाएं जो केवल उपस्थिति या/या अस्थिरता की अनुपस्थिति या अनुपस्थिति में भिन्न होती हैं। यही है, प्रत्येक पैरामीटर प्रकार के लिए कॉन्स्ट और अस्थिर प्रकार-विनिर्देशकों को अनदेखा किया जाता है जब यह निर्धारित किया जाता है कि कौन सा फ़ंक्शन घोषित, परिभाषित किया गया है या कहा जाता है। [उदाहरण:
typedef const int cInt;
int f(int);
int f(const int); // redeclaration of f(int)
int f(int) { /* ... */ } // definition of f(int)
int f(cInt) { /* ... */ } // error: redefinition of f(int)
- अंत उदाहरण]
केवल पैरामीटर प्रकार विनिर्देश की सबसे बाहरी स्तर पर स्थिरांक और वाष्पशील प्रकार-विनिर्देशक इस फैशन में अनदेखी कर रहे हैं; पैरामीटर प्रकार विनिर्देश के भीतर दफन किए गए स्थिर और अस्थिर प्रकार-विनिर्देश महत्वपूर्ण हैं और ओवरलोडेड फ़ंक्शन घोषणाओं को में अंतर करने के लिए उपयोग किया जा सकता है। विशेष रूप से, किसी भी प्रकार के टी, pointer to T
, pointer to const T
, और pointer to volatile T
को reference to T
, reference to const T
, और reference to volatile T
के रूप में अलग पैरामीटर प्रकार माना जाता है।
124) एक पैरामीटर प्रकार इस तरह के एक पैरामीटर प्रकार के मामले कि कार्य करने के लिए एक सूचक है के रूप में एक समारोह का प्रकार, शामिल होते हैं तो स्थिरांक और के लिए पैरामीटर प्रकार विनिर्देशों की सबसे बाहरी स्तर पर अस्थिर प्रकार-विनिर्देशक आंतरिक फ़ंक्शन प्रकार भी अनदेखा कर रहे हैं।
जोड़ा सी ++ टैग; यदि वह भाषा नहीं है जिसके बारे में आप बात कर रहे हैं, तो कृपया अपने प्रश्न को संपादित करने के लिए महत्वपूर्ण तथ्य और उचित रूप से पुनः प्रयास करें। – Mat
यह सिर्फ 'const' के समान है, यदि आपके पास' अस्थिर 'योग्य ऑब्जेक्ट है तो उस पर केवल' अस्थिर 'फ़ंक्शन कहा जा सकता है। –
ओह, मैंने अपना दिमाग फिसल दिया –