में सूचक बनाम चर मुझे पता है कि अंतर क्या है और वे दोनों कैसे काम करते हैं लेकिन यह प्रश्न कोडिंग शैली के बारे में अधिक है।कक्षा
जब भी मैं कोडिंग कर रहा हूं, मैं कई कक्षाएं बनाता हूं, उनमें से सभी चर होते हैं और उनमें से कुछ पॉइंटर्स होते हैं और कुछ सामान्य चर होते हैं। मैं आमतौर पर संकेत के लिए चर पसंद करते हैं कि सदस्यों के रूप में लंबे समय के वर्ग करता है के रूप में रहता है लेकिन फिर मेरे कोड इस तरह हो जाता है:
engine->camera.somevar->x;
// vs
engine->camera->somevar->x;
मैं बीच में डॉट पसंद नहीं है। या निजी चर के साथ:
foo_.getName();
// vs
foo_->gatName();
मुझे लगता है कि डॉट "गायब हो जाता है" एक लंबे कोड में। मुझे कुछ मामलों में पढ़ने के लिए -> आसान लगता है।
मेरा प्रश्न यह होगा कि यदि आप कन्स्ट्रक्टर में चर बनाने जा रहे हैं और विनाशक में हटाए गए हैं तो भी आप पॉइंटर्स का उपयोग करते हैं? क्या इस मामले में कोई स्टाइल सलाह है?
पीएस मुझे लगता है कि कुछ मामलों में डॉट बेहतर दिखता है।
अच्छा, लेकिन सदस्यों के बारे में स्मार्ट पॉइंटर्स बनाम (कार्यान्वयन कोड में) के बारे में क्या? – user396672
@ user396672: उनके बारे में क्या। एक स्मार्ट सूचक सिर्फ किसी अन्य वस्तु की तरह एक वस्तु है। इसका काम एक सूचक को प्रबंधित करना है। –
अच्छी तरह से, कुछ वर्गों में सार्वजनिक चर होते हैं और मुझे उन्हें निजी बनाने का कोई कारण नहीं दिखता है। यदि मैं वर्ग के काम को अमान्य उपयोग से दूषित कर सकता हूं तो मैं केवल निजी चर बना देता हूं। यदि वे सिर्फ कक्षा में हैं, तो प्रोग्राम की संरचना बनाने के लिए - क्यों नहीं। उदाहरण के लिए इंजन के साथ उदाहरण। जब मैं किसी भी गेम को कोड करता हूं (मैं कभी-कभी शर्टी गेम बना देता हूं। यह बहुत मजेदार है), मैं एक बाहरी सूचक "इंजन" बनाता हूं क्योंकि इसका उपयोग कई अन्य वस्तुओं द्वारा किया जाता है। और उस इंजन में आम तौर पर सार्वजनिक दायरे में कैमरे जैसी चीजें होती हैं। मैं ऐसा इसलिए करता हूं क्योंकि अन्य ऑब्जेक्ट्स को कैमरा क्लास तक पहुंचना पड़ता है और यह इंजन को बर्बाद नहीं कर सकता है। – Pijusn