2015-05-09 19 views
7

C++ प्राइमर पांचवें संस्करण पेज 108 पर Lippman द्वारा एट अल, यह कहते हैं: (§ 2.4.2, पी 62।)const_iterator और स्थिरांक सूचक

एक const_iterator बर्ताव करता है एक const सूचक की तरह। const पॉइंटर की तरह, const_iterator पढ़ सकता है लेकिन यह उस तत्व को नहीं लिखता है जो इसे दर्शाता है; [...]

मैं const_iterator के कार्य को समझता हूं, लेकिन क्या यह तुलना सही है? मुझे लगता है कि इसका व्यवहार "const पर सूचक" जैसा है।

क्या मैंने कुछ गलत समझा?

+0

मेरा मानना ​​है कि लेखक कॉन्स के लिए एक सूचक का जिक्र कर रहा था। कॉन्स पॉइंटर और अधिकतर समय कहना आसान है, "कॉन्स्ट पॉइंटर" में अस्पष्टता को हल करने के लिए पॉइंटर कोस्ट का आसान विकल्प है। आप तर्क दे सकते हैं कि पहली जगह अस्पष्टता के लिए दुर्भाग्यपूर्ण है। – chris

उत्तर

1

जब लेखक ने कहा "कॉन्स्ट पॉइंटर" मुझे लगता है कि वह वास्तव में "कॉन्स्ट्रेंस टू पॉइंटर" था।

कारण वह शायद यह करता दोहरा है:

  1. हम लगभग एक निरंतर सूचक का उपयोग कभी नहीं (कम से कम नहीं सीधे - टेम्पलेट्स गिनती नहीं है)।

  2. स्थिरांक के लिए एक सूचक const T*, जो आपको "स्थिरांक सूचक" के रूप में उच्चारण के रूप में लिखा है।

3

आप ठीक कह रहे हैं। लेखकों ने स्पष्ट रूप से अपनी पुस्तक के खंड 2.4.2 का संदर्भ दिया है (मैंने इसे आपके प्रश्न को अभी प्रतिबिंबित करने के लिए अपडेट किया है), जहां वे परिभाषित करते हैं कि वे शब्दावली "कॉन्स्ट पॉइंटर" बनाम "पॉइंटर टू कॉन्स्ट" का उपयोग कैसे करना चाहते हैं। इस सटीक परिभाषा को देखते हुए, उन्हें आपके द्वारा उद्धृत अनुभाग में "पॉइंटर टू कॉन्स्ट" कहा जाना चाहिए था।

(हालांकि, अन्य संदर्भों में अन्य लेखकों शब्दावली कम सटीकता का उपयोग, और इस संदर्भ के बाहर, मैं यह असामान्य यदि किसी के रूप में "स्थिरांक सूचक" "सूचक const करने के लिए" के रूप में नहीं मिल रहा है।)

संबंधित मुद्दे