यह एक ही विषय पर मैंने लिखा एक और उत्तर का एक संशोधित संस्करण है।इन सवालों में से पर्याप्त और शायद मैं एक निश्चित पद के साथ समाप्त हो जाऊंगा;)
प्रमुख मुद्दा नाम विवाद है, यदि आपके पास आपके कोड में कोउट नामक एक चर है और आप using namespace std;
हैं तो यह अस्पष्ट होगा तुम्हारा मतलब है। यह सिर्फ cout
नहीं है। count
, reverse
और equal
भी शामिल किए जाएंगे, जो सभी आम पहचानकर्ता हैं।
कंपाइलर को सभी समस्याओं को अस्वीकार करना, यह आपके कोड को पढ़ने वाले किसी भी व्यक्ति के लिए भी एक समस्या है। उन अतिरिक्त 5 वर्णों से यह सुनिश्चित होता है कि आपका कोड बनाए रखने वाला अगला व्यक्ति वास्तव में आपका मतलब बताता है।
यह भी ध्यान देने योग्य है कि आप कभी नहीं रखना चाहिए एक हेडर फाइल में
using namespace std;
, के रूप में यह, सभी फ़ाइलें कि हेडर फाइल शामिल करने के लिए प्रचार कर सकते हैं, भले ही वे का उपयोग नहीं करना चाहते हैं वह नामस्थान यहां एक और समस्या यह है कि यह भी स्पष्ट नहीं है कि std नेमस्पेस आयात किया गया है, इसलिए रखरखाव (या आप 3 महीने के समय में) एक वैरिएबल को एक ही नाम के साथ जोड़ते हैं जैसे कुछ अस्पष्ट std फ़ंक्शन जिसे एक ही संकलन इकाई में शामिल किया गया था और फिर संकलन त्रुटि के कारण को खोजने का प्रयास करने में एक घंटे खर्च करता है।
मामलों के बहुमत में यह बहुत की तरह
using std::swap
चीजों का उपयोग करने के रूप में अगर वहाँ स्वैप की एक विशेष संस्करण है, संकलक का उपयोग करेगा फायदेमंद है, अन्यथा यह std::swap
पर प्रारंभ कर देगा। यदि आप std::swap
पर कॉल करते हैं, तो आप हमेशा मूल संस्करण का उपयोग करते हैं, जो विशेष संस्करण को कॉल नहीं करेगा (भले ही यह मौजूद है)।
pimpl idiom का उपयोग कर उदाहरण कोड के लिए लें। जहां डिफ़ॉल्ट प्रतिलिपि वास्तविक कार्यान्वयन में सभी डेटा की प्रतिलिपि बना सकती है, जहां सभी को करने की आवश्यकता है, पॉइंटर्स को स्वैप करना है। एक विशेष स्वैप का उपयोग करने से बड़ी मात्रा में निष्पादन समय बचा सकता है, और अच्छी तरह से डिज़ाइन किए गए पुस्तकालयों को इसका विशेषज्ञ होना चाहिए।
सारांश में,
हमेशा using std::swap
प्रचार की वजह से हर हालत में एक शीर्षक में std::swap()
से अधिक
बचें using namespace std
पसंद करते हैं, कार्यान्वयन फ़ाइलों में इसका उपयोग करने से बचने की कोशिश।
प्रत्येक फ़ाइल के शीर्ष पर हजारों using std::foo
होने का कोई तरीका नहीं है। आमतौर पर कक्षाओं का उपयोग करने के लिए इसका उपयोग करें।
बाकी सब कुछ राय है।
दूसरे सम्मेलन का उपयोग न करें, आप अपनी सैनिटी खो देंगे। –
दूसरा सम्मेलन निश्चित रूप से उपयोग करने के लिए सही है। –
संदर्भ के आधार पर दूसरा या तीसरा। पहला व्यक्ति केवल "हैलो वर्ल्ड" ट्यूटोरियल या त्वरित डेमो के लिए उपयोग किया जाना चाहिए। –