इन दोनों कार्यात्मक रूप से बराबर घोषणाओं हैं। हालांकि, &
या *
को चर के बजाय टाइप नाम के साथ जोड़ने की कठिनाई यह है कि औपचारिक C++
वाक्यविन्यास के अनुसार, न तो &
और न ही *
चर की सूची में वितरक है। इस प्रकार, आसानी से भ्रामक घोषणाएं बनाते हैं। उदाहरण के लिए, निम्नलिखित घोषणा एक, दो नहीं, पूर्णांक संदर्भ बनाता है।
int& a, b;
यहाँ, b
एक पूर्णांक (नहीं एक पूर्णांक संदर्भ), क्योंकि जब एक घोषणा में इस्तेमाल किया, &
(या *
) अलग-अलग चर से जुड़ा हुआ है इससे पहले आने वाली, टाइप करने के लिए नहीं के रूप में घोषित किया जाता है यह इस प्रकार है। इस घोषणा के साथ समस्या यह है कि, दृष्टि से दोनों ए और बी संदर्भ प्रकारों के प्रतीत होते हैं, भले ही केवल a
एक संदर्भ है, इस प्रकार दृश्य भ्रम न केवल नौसिखिया C++
प्रोग्रामर को गुमराह करता है, लेकिन कभी-कभी प्रोग्रामर भी अनुभव करता है।
इससे कोई फर्क नहीं पड़ता कि आप int &a
या int& a
C++
कंपाइलर के लिए लिखते हैं या नहीं। हालांकि, भ्रम से बचने के लिए, &
और *
प्रकार के बजाय परिवर्तनीय से जुड़ा होना चाहिए।
स्रोत
2017-04-18 16:15:53
कोई इससे कोई फर्क नहीं पड़ता। – Nerdtron