इस तरह के प्रश्न डैन सैक्स की सलाह का पालन करने के मेरे संकल्प को मजबूत करते हैं जैसा कि "गुरु के साथ बातचीत" लेख में उल्लिखित है: http://www.drdobbs.com/conversationsa-midsummer-nights-madness/184403835।
विशेष रूप से यह इस बात से संबंधित है कि कॉन्स्ट प्लेसमेंट चीजों को कैसे बदलता है। (*) मुझे एहसास है कि मुझे const int ...
से int const ...
पर लिखने से किसी को भी परिवर्तित करने की संभावना नहीं है, लेकिन कहा जाता है कि, बाद में ऐसा करने का एक कारण है।
(*) एक नोट को शामिल करते हुए कि शुरूआत में प्रकार की घोषणा के साथ कॉन्स को स्वैप करना एक ऐसा परिवर्तन है जिसका कोई प्रभाव नहीं पड़ता है।
यह बहुत आसान पठनीयता के लिए बनाता है, क्योंकि const
शब्द के किसी भी उदाहरण के लिए, इसके बाईं ओर सबकुछ उस प्रकार का है जो कि स्थिर है, और दाईं ओर सबकुछ वास्तव में है।
की तरह एक घोषणा पर विचार करें:
int const * * const pointerToPointer;
पहले const
कहा गया है कि सूचक श्रृंखला के अंत में पूर्णांक स्थिरांक हैं, और वे * * const pointerToPointer
में पाया जा रहे हैं। इस बीच दूसरा एक कहता है कि टाइप पॉइंटर का पॉइंटर को कॉन्स्ट int में भी इंगित करना है और यह ऑब्जेक्ट pointerToPointer
है।
ओपी के मामले में:
int const MyClass::showName(string id){
...
}
क्या स्थिरांक पूर्णांक है, और क्या स्थिरांक है समारोह से वापसी मान है के प्रकार।
इस बीच:
int MyClass::showName(string id) const {
...
}
यहाँ स्थिरांक है के प्रकार के समारोह (स्ट्रिंग) लौटने पूर्णांक है, और क्या स्थिरांक है समारोह में ही है, यानी समारोह निकाय है।
स्रोत
2017-01-20 19:31:11
संबंधित प्रश्न [यहां] (http://stackoverflow.com/questions/10368294/const-at-the-end-of-function-declaration-in-c/) – juanchopanza