यह सवाल थोड़ा सा स्पष्टीकरण लेने जा रहा है, क्षमा करें। मैं कुछ सी ++ कोड को पार्स करने में डॉक्सिजन में एक निरीक्षण को ठीक कर रहा हूं और मैं असामान्य कोने के मामले में आया हूं जो डॉक्सिजन का खाता नहीं है। मेरे पास एक फिक्स है लेकिन मैं इसे और अधिक सामान्य बनाना चाहता हूं इसलिए मुझे कुछ स्पष्टीकरण की आवश्यकता है।सी ++ किस प्रकार पैरामीटर प्रकार का नाम पैरामीटर नाम के रूप में एक प्रकार के विनिर्देशक के समान हो सकता है?
डॉक्सिजन विफल होने के मामले को चित्रित करने के लिए मैं सिम्पसंस से जुड़े एक प्रदूषित उदाहरण को परिभाषित करने जा रहा हूं (क्योंकि यह इस प्रकार के प्रश्नों के लिए लोकप्रिय प्रतीत होता है)।
enum simpson { HOMER, MARGE, BART, LISA, MAGGIE };
अब हम (द सिम्पसंस वर्ग स्वाभाविक रूप से) एक विधि में enum मूल्य पास करना चाहते हैं कि इस तरह दिखता है:
const char* voicedBy(simpson simpson)
{
switch (simpson) {
case HOMER:
return "Dan Castellaneta";
case MARGE:
return "Julie Kavner";
case BART:
return "Nancy Cartwright";
case LISA:
return "Yeardley Smith";
case MAGGIE:
return "*suck* *suck*";
}
}
दुर्भाग्य से यह एक का उत्पादन कहते हैं कि हम निम्नलिखित enum करते हैं कंपाइलर त्रुटि क्योंकि enum type 'simpson' को पैरामीटर नाम 'सिम्पसन' के समान होने की अनुमति नहीं है (जैसा कि, कहें, सी #)। लेकिन, सी ++ का इसका जवाब है। आपने enum कीवर्ड को इस प्रकार के नाम के सामने रखा है:
const char* voicedBy(enum simpson simpson)
और कोड अब संकलित और चलाएगा। दुर्भाग्यवश डॉक्सिजन इस मामले के लिए जिम्मेदार नहीं है और इसलिए यह पैरामीटर प्रकार के साथ पैरामीटर प्रकार के रूप में संपूर्ण स्ट्रिंग "एनम सिम्पसन सिम्पसन" का इलाज करता है। मैं ऊपर की तरह एक enum के मामले में डॉक्सिजन को ठीक करने के लिए कुछ कोड के साथ आया हूँ।
मेरा सवाल यह है कि इस प्रकार की चाल किस प्रकार की वैध है? संरचना ?, संघ ?, typedef ?, दूसरों? और उस मामले के लिए, 'पैरामीटर नाम' अवधारणा के समान विधि वाले विधि पैरामीटर के लिए टाइप विनिर्देश का नाम है ताकि मैं इसके बारे में कुछ और जानकारी प्राप्त कर सकूं?
अच्छा (अच्छा ... "मुझे यह नहीं पता था" में अच्छा लगा, लेकिन _nice_ नहीं) चाल। –
कृपया मुझे क्षमा करें जबकि मुझे लगता है कि जो भी कोड लिखा है और उन्हें चेहरे पर क्लब करें: पी। –
क्या कंपाइलर और संस्करण? उपरोक्त कोड नमूना को * विस्तृत प्रकार विनिर्देश * के लिए किसी भी आवश्यकता के बिना संकलित करना चाहिए। –