मुझे पता है क्यों? इस साइट के लिए एक बुरा सवाल है, क्योंकि हम नहीं जानते हैं। हालांकि मेरा मतलब यह पूछने के लिए एक बोलचाल प्रतिस्थापन के रूप में है, कुछ संभावित कारण क्या हैं?क्यों नहीं है -> [] सी ++ में एक ऑपरेटर? (dereferenced सरणी पॉइंटर्स के लिए एक सबस्क्रिप्ट ऑपरेटर)
मुझे लगने लेखन, स्वाभाविक रूप से,
foo->[i];
और जानने के लिए कि यह काम नहीं किया हैरान किया जा रहा है। मैं लिखने के लिए होती:
(*foo)[i];
मुझे यकीन है कि सबसे अधिक देखने को पहले से ही मैं क्या मतलब है, लेकिन स्पष्ट होना, मैंने सोचा
bar.subscript(i);
foo->subscript(i);
के अनुरूप होगा हूँ
bar.operator[](i);
foo->operator[](i);
लेकिन यह मामला प्रतीत नहीं होता है। क्यूं कर? मुझे यकीन है कि मुझे कुछ गलत तरीके से देखना चाहिए, लेकिन मैं यह नहीं समझ सकता कि क्या। मुझे बहुत कम सिद्धांत पता है, इसलिए एक व्यक्ति की व्याख्या की सराहना की जाएगी।
यदि मेरे समानता में कोई स्पष्ट त्रुटि नहीं है, तो भाषा के डिजाइनरों ने ऑपरेटर को छोड़ने के कुछ संभावित कारण क्या हैं? क्या यह संदिग्ध है? (? यदि हां, तो क्या mistakable होने के रूप में)
मैं, एक संपादन में कुछ टिप्पणियाँ लाने के लिए के अनुसार @ क्रिस की सिफारिश के रूप में मैं के रूप में स्पष्ट नहीं किया गया चाहूँगा के रूप में मैं किया जाना चाहिए था:
ओपी ऑपरेटर -> [], दोनों का संयोजन प्रस्तावित कर रहा है।
- क्रिस
वह पूछ रहा है कि वह जो चीज चाहता है वह मौजूद नहीं है, क्यों वह जिस कोड को लिखने की कोशिश कर रहा है वह काम नहीं करता है।
- मैथ्यू 'कोगवील' ऑरलैंडो
एक दिलचस्प सवाल यह है कि "विश्लेषण करना मुश्किल होगा"। मुझे उस सवाल का जवाब नहीं पता है। – Yakk
@Yakk, मुझे प्रभाव में अधिकतम मंच के साथ संदेह है। मैं उस पर टिप्पणी करने वाला था। – chris
क्योंकि उस समय किसी ने इसके बारे में सोचा नहीं था और किसी ने अभी तक इसे मानक बनाने के लिए पर्याप्त देखभाल नहीं की है। 99% "एक्स अच्छा लगता है, सी ++ में एक्स क्यों नहीं है" प्रश्नों के पीछे यही कारण है। यह विशेष रूप से इस तरह के प्रश्नों के बारे में सच है: लोगों को '(* x) लिखने के लिए कहना बहुत आसान है। [I] 'मानक टेक्स्ट बदलने के सभी काम करने के बजाय' x -> [i] 'के बजाय , इसका परीक्षण, सुनिश्चित करें कि कोई भयानक निरीक्षण नहीं है, आदि ... – GManNickG