हमारे सभी सी ++ पाठ्यक्रमों में, सभी शिक्षक अपनी फाइलों में एस के using namespace std;
बाद हमेशा सही डालते हैं । यह मुझे तब से खतरनाक लग रहा है जब तक कि किसी अन्य प्रोग्राम में उस हेडर को शामिल करने से मुझे अपने प्रोग्राम में आयात किए गए नेमस्पेस मिल जाएंगे, हो सकता है कि इसे साकार किए बिना, इरादा या इसे (हेडर इंक्लूजन बहुत गहरा नेस्टेड हो सकता है)।#include
.h
इसलिए मेरा प्रश्न दोहरा है: क्या मैं सही हूं कि using namespace
इसे हेडर फ़ाइलों में उपयोग नहीं किया जाना चाहिए, और / या इसे इसे पूर्ववत करने का कोई तरीका है, कुछ इस प्रकार है:
//header.h
using namespace std {
.
.
.
}
इसी तर्ज पर एक और सवाल: क्या हेडर को #include
सभी हेडर को फाइल करना चाहिए जो कि इसी .cpp
फाइल की जरूरत है, केवल उन है कि हेडर परिभाषाओं के लिए आवश्यक हैं और .cpp
फाइल #include
को बाकी है, या कोई भी नहीं है और सब कुछ की घोषणा के रूप में की जरूरत है extern
?
सवाल के पीछे तर्क ऊपर के रूप में ही है: मुझे आश्चर्य नहीं है जब .h
फाइलें शामिल हैं।
इसके अलावा, अगर मैं सही हूं, तो क्या यह एक सामान्य गलती है? मेरा मतलब है कि वास्तविक दुनिया की प्रोग्रामिंग और "वास्तविक" परियोजनाओं में।
धन्यवाद।
using namespace
बयानों के कारण नाम टकराव मिलते हैं तो आप समस्या को हल करने के लिए पूरी तरह से योग्य नाम का उपयोग कर सकते हैं।