Tuesday, 15 September 2015

How to check this condition with enums - C++ -


कक्षा दिशा

  वर्ग निर्देश {सार्वजनिक: enum value {UP, right, down, LEFT, STAY}; };  

क्लास प्वाइंट

  # निर्देश "एच" वर्ग बिंदु {int x, y; सार्वजनिक: प्वाइंट () {x = 0; y = 0; }; बिंदु (int x1, int y1): x (x1), y (y1) {}; शून्य सेटएक्स (इंट न्यूएक्स) {x = newX; }; शून्य सेट वाई (इंट न्यूवाई) {y = newY; }; Int getX () {वापसी x; } पूर्णांक () {वापसी y; } शून्य कदम (दिशा डी) {यदि (डी == यूपी); };  

समस्या है अगर (डी == यूपी) मुझे समझ में नहीं आ रहा है कि मैं इस स्थिति की जांच कैसे कर सकता हूं, जिससे मुझे इसकी जांच करने में त्रुटि मिलती है।

कोई विचार? किसी भी मदद की सराहना की जाएगी।

UP को वर्ग के भीतर घोषित किया गया है निर्देश , इसलिए उस गुंजाइश के बाहर आपको दिशा :: यूपी लिखना चाहिए:

  यदि (... कुछ ... == दिशा :: यूपी) ...  

आपका दिशा वर्ग मान संखार प्रकार बनाता है, लेकिन इसमें कोई भी डेटा सदस्य नहीं है अभी तक, इसलिए यह स्पष्ट नहीं है कि d में आप दिशा: यूपी से तुलना करना चाहते हैं। आप अंतिम }; में वर्ग निर्देश :

  मूल्य मान_ से पहले एक अतिरिक्त पंक्ति डालने से एक डेटा सदस्य जोड़ सकते हैं;  

फिर आपकी तुलना बन जाएगी:

  यदि (d.value_ == दिशा :: यूपी) ...  

जो सभी ने कहा है, यदि आपका वर्ग निर्देश को enum के अलावा कुछ भी नहीं रखा जा रहा है, तो आप कक्षा के हिस्से को पूरी तरह से छुटकारा पाने और बस अकेले enum:

<पूर्व> दिशा निर्देश (यूपी, ...};

फिर आपकी तुलना को सरल होगा:

  यदि (डी == यूपी) ...  

No comments:

Post a Comment