सी ++ में कभी-कभी कक्षा परिभाषा में सार्वजनिक सदस्यों को पहले घोषित किया जाता है और बाद में निजीकरण किया जाता है। लेकिन चर या डेटा सदस्य सामान्य रूप से निजी होते हैं और सार्वजनिक तरीकों से उपयोग किए जाते हैं। इसलिए, इस मामले में चर का उपयोग किया जाता है लेकिन अभी तक घोषित नहीं किया गया है। इस प्रकार कोड को समझना मुश्किल हो जाता है। लेकिन मुझे बाद में निजी सदस्यों की घोषणा करने के लिए प्रसिद्ध प्रोग्रामर, साइट्स या किताबें मिलीं। क्या कोई जानता है कि कारण क्या है?सी ++ में सार्वजनिक सदस्यों के नीचे निजी सदस्यों को परिभाषित क्यों करें?
उत्तर
मैं इस तरह की चीजें करता हूं क्योंकि मेरी कक्षा के उपयोगकर्ताओं को निजी सदस्यों की परवाह नहीं है, वे सार्वजनिक एपीआई में रुचि रखते हैं (यानी मेरी कक्षा का उपयोग कैसे करें)।
इसके अलावा, हेडर फाइलों में मैं आम तौर पर केवल उन्हें परिभाषित करने के बजाय सदस्य कार्यों की घोषणा कर रहा हूं, इसलिए मैं किसी भी निजी सदस्यों को किसी भी तरह से एक्सेस नहीं कर रहा हूं।
+1: हेडर फ़ाइल को कक्षा के उपयोगकर्ताओं के लिए अनुबंध के रूप में कार्य करना चाहिए। कोई कार्यान्वयन वहाँ नहीं है। – kgiannakakis
बेशक, इनलाइन फ़ंक्शंस को छोड़कर। हालांकि, सबसे छोटे मामलों में, उनको कक्षा की परिभाषा के बाद आना चाहिए। – rlbond
@rlbond - अच्छा बिंदु। –
आम तौर पर निजी सदस्य कोई फर्क नहीं पड़ता। यदि मैं यह निर्धारित करने के लिए कक्षा में देख रहा हूं कि कोड में कहीं और इसका उपयोग कैसे किया जाए, तो मुझे इसकी आंतरिक देखभाल नहीं है इसलिए निजी सदस्यों को नीचे रखें क्योंकि मुझे उनके बारे में जानने की आवश्यकता नहीं है। अगर मैं "एक वर्ग को संशोधित हूँ तो मैं समय ले लेंगे निजी सदस्यों को खोजने के लिए और जानते हैं कि वे बजाय पूरी क्लास स्किम के लिए होने के तल पर हो जाएगा
हम विपरीत की तरह कर रहे हैं:। My Question
मेरा तर्क यह है कि जब आप कक्षा से परिचित हो जाते हैं तो पहले सार्वजनिक इंटरफ़ेस में पेश होने के लिए अधिक फायदेमंद होता है, फिर जब आपको आवश्यकता होती है तो निजी सदस्यों में गहराई से जाएं। यदि आप निजी सदस्यों को देखकर शुरू करते हैं, तो आपके पास नहीं है संदर्भित करें कि उनका उपयोग कैसे किया जाता है।
निजी सदस्यों और कार्यान्वयन को हेडर फ़ाइल से छुपाया जाना चाहिए। नीचे निजी सदस्य परिभाषाओं को रखना एक ऐसा तरीका है। Pe शायद Pimpl idiom का उपयोग करना बेहतर है और एक आंतरिक संरचना में अपनी कक्षा का निजी हिस्सा छुपाएं।
हम ऊपर से नीचे तक पाठ पढ़ते हैं, इसलिए सबसे प्रासंगिक जानकारी शीर्ष पर होनी चाहिए। कक्षा परिभाषा में, यह सार्वजनिक इंटरफ़ेस है।
सहमत हुए। निजी सदस्यों को नीचे घोषित किया जाना चाहिए। मैंने पाया कि निजी सदस्यों को पहले घोषित करने का एकमात्र अच्छा कारण यह है कि जब किसी फ़ंक्शन को कस्टम डेटा प्रकार प्राप्त करने या वापस करने की आवश्यकता होती है, जैसे: वेक्टर। संकलक आपको पूछेगा कि किस प्रकार का डेटा है।
लेकिन फिर भी, उस मामले में मुझे क्या करना preffer:
{ निजी: /// नीचे और अधिक निजी थेरेस ओएफसी advicing! पहले बस प्रकार
जनता के घोषित:
निजी:
};
- 1. निजी सदस्यों तक पहुंच
- 2. निजी डेटा सदस्यों को छुपाएं? (सी ++)
- 3. निजी सदस्यों या सार्वजनिक एक्सेसर्स का उपयोग करने के तरीके
- 4. पहुँच निजी सदस्यों
- 5. निजी सदस्यों वाले वर्ग के उदाहरण को क्रमबद्ध कैसे करें?
- 6. सुपरक्लास के निजी सदस्यों तक पहुंच
- 7. उद्देश्य-सी में निजी और सार्वजनिक सदस्यों को कैसे लागू किया जाना चाहिए?
- 8. नेस्टेड क्लास के निजी सदस्यों तक पहुंच कैसे प्राप्त करें?
- 9. स्थिर वर्ग के सदस्यों
- 10. सी ++ वर्ग/संरचना सदस्यों की डिफ़ॉल्ट दृश्यता
- 11. निजी सदस्यों जब एक वर्ग ExtJS
- 12. बाहरी असेंबली में structs के सार्वजनिक पाठक सदस्यों तक पहुंच
- 13. VB.NET वर्ग के सदस्यों डिफ़ॉल्ट
- 14. मुझे सी ++ कक्षा के सदस्यों को कैसे आदेश देना चाहिए?
- 15. सी ++ विरासत: देखते हुए और सदस्यों
- 16. रिशेर्पर - बेस क्लास सदस्यों समेत समानता सदस्यों को उत्पन्न करें
- 17. निजी, सदस्यों के लिए केवल साइट Liferay 6.1
- 18. पिक्चरबॉक्स के गैर-सार्वजनिक सदस्यों का मूल्य कैसे प्राप्त करें?
- 19. कक्षा के निजी डेटा सदस्यों के क्रम को बदलना एबीआई
- 20. निजी सदस्यों के साथ सादा पुराने डेटा प्रकार?
- 21. ग्रैडल के साथ जावाडोक: निजी सदस्यों को भी दिखाएं
- 22. हैश.न्यू ({}) हैश सदस्यों को क्यों छुपाता है?
- 23. enum सदस्यों
- 24. एक्सेस करना सार्वजनिक विरासत में मिला खाका डेटा सदस्यों
- 25. DataContractSerializer: क्यों सदस्यों को हटा नहीं?
- 26. टैगिंग सदस्यों
- 27. सी # आंतरिक होने पर विधियों/सदस्यों को सार्वजनिक होने की अनुमति क्यों देता है
- 28. मैं सार्वजनिक सदस्यों के रूप में स्कैला कन्स्ट्रक्टर तर्कों का खुलासा कैसे करूं? इस उदाहरण को
- 29. सी ++ इस दृष्टिकोण का उपयोग करके निजी सदस्यों को संशोधित करने की अनुमति क्यों देता है?
- 30. उदाहरण सदस्यों को धागा-असुरक्षित बनाम सार्वजनिक स्थिर बनाता है?
डुप्लिकेट: http://stackoverflow.com/questions/308581/how-should-i-order-the-members-of-ac-class –
इसके अलावा: http://stackoverflow.com/questions/778281/why -पुट-निजी-फ़ील्ड-और-विधियों-पर-द-टॉप-ऑफ-क्लास –