2010-02-17 14 views
11

मैंने थोड़ी देर के लिए इसके साथ काम नहीं करने के बाद सी ++ के साथ काम करना शुरू कर दिया है। हालांकि इसमें से अधिकांश समझ में आता है, कुछ बिट्स हैं जिन्हें मुझे confuddling मिल रहा है। उदाहरण के लिए, किसी को समझाने कृपया सकता है क्या इस लाइन करता है:क्या कोई इस सी ++ टाइपपीफ को समझा सकता है?

typedef bool (OptionManager::* OptionHandler)(const ABString& value); 
+2

मुझे यह जानकर उत्सुकता है कि किसी ने इसे क्यों कम किया ... –

+0

इसमें कोई संदेह नहीं है। प्वाइंट है, आपके पास समान प्रश्नों को खोजने में उतनी ही समस्याएं हैं जितनी आपने की थी। (मेरा डाउनवोट बीटीडब्लू नहीं) – MSalters

+3

देखकर खुशी हुई कि मैं अकेला नहीं हूं जो फ़ंक्शन पॉइंटर सिंटैक्स अजीब लगता है ... सबसे अच्छे समय पर! –

उत्तर

26

यह वर्ग OptionManager के एक सदस्य के कार्य करने के लिए एक सूचक होने के लिए प्रकार OptionHandler को परिभाषित करता है, और इस सदस्य समारोह प्रकार const ABString& और रिटर्न का एक पैरामीटर लेता है जहां bool

4

इस OptionManager के एक सदस्य समारोह है कि एक स्थिरांक ABString refrence लेता है और एक bool

2

यह सदस्य कार्य करने के लिए एक सूचक के लिए एक typedef है रिटर्न के लिए सूचक है। कृपया C++ FAQ देखें।

OptionManager::* OptionHandler 

यह कहना है कि ::* OptionHandler वर्ग OptionManager के एक सदस्य समारोह है:

9
typedef bool (OptionManager::* OptionHandler)(const ABString& value); 

के शुरू के साथ करते हैं। OptionHandler के सामने कहता है कि यह एक सूचक है; इसका मतलब है OptionHandler कक्षा OptionManager के सदस्य फ़ंक्शन के लिए एक सूचक है।

(const ABString& value) कहता है कि सदस्य फ़ंक्शन ABString को एक कॉन्स संदर्भ में टाइप करेगा।

bool कहता है कि सदस्य फ़ंक्शन एक बूलियन प्रकार लौटाएगा।

typedef कहता है कि "* विकल्प हैंडलर" का उपयोग करके आप कई फ़ंक्शन पॉइंटर्स बना सकते हैं जो उस फ़ंक्शन के उस पते को संग्रहीत कर सकते हैं। उदाहरण के लिए:

OptionHandler fp[3]; 

fp[0], fp[1], fp[2] कार्यों जिसका अर्थ विज्ञान ऊपर स्पष्टीकरण के साथ मैच के पते संग्रहीत करेगा।

+2

अच्छा है कि आप इस प्रकार को छोटे टुकड़ों में तोड़ते हैं, लेकिन "' :: * OptionHandler' एक सदस्य फ़ंक्शन है ": क्यों सादा सदस्य नहीं? यह केवल तभी देखा जाता है जब आसपास के इलाकों को देखा जाता है। – xtofl

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