मैं स्थानीय नामस्थान में std :: string और std :: वेक्टर जोड़ने के लिए C++ में 'उपयोग' घोषणा का उपयोग कर रहा हूं (अनावश्यक 'std ::' टाइपिंग को सहेजने के लिए)।सी ++ में "उपयोग" घोषणा का दायरा क्या है?
using std::string;
using std::vector;
class Foo { /*...*/ };
इस घोषणा पर दायरा क्या है? यदि मैं इसे हेडर में करता हूं, तो क्या यह प्रत्येक सीपीपी फ़ाइल में इन 'उपयोग' घोषणाओं को इंजेक्ट करेगा जिसमें हेडर शामिल है?
बस अगर यह अन्य उत्तरों से स्पष्ट नहीं है: - ** फ़ाइल/शीर्षलेख में फ़ाइल स्कोप पर 'उपयोग' का उपयोग न करें (या 'निर्देश का उपयोग करें)! ** वह होगा हेडर के उपयोगकर्ताओं के लिए सिरदर्द का कारण बनता है। –
असल में, शीर्षलेख ** में एक 'शीर्षक' घोषणा (एक fortiori * निर्देश *) डालें ** ** * यहां तक कि नामस्थान के भीतर भी! * देखें [नामस्थान के भीतर घोषणा का उपयोग करने का दायरा] (http://stackoverflow.com/q/6175705/2025416) समस्याओं के कारण यह कारण है। –