Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में क्या नेमस्पेस नेस्टेड हो सकते हैं?

हां, C++ में नेमस्पेस नेस्टेड हो सकते हैं। हम एक नेमस्पेस को दूसरे नेमस्पेस के अंदर परिभाषित कर सकते हैं जैसा कि नीचे दिखाया गया है:

सिंटैक्स

namespace namespace_name1 {
    // कोड डिक्लेरेशन्स
    namespace namespace_name2 {
        // कोड डिक्लेरेशन्स
    }
}

आप रिज़ॉल्यूशन ऑपरेटर्स का उपयोग करके नेस्टेड नेमस्पेस के मेंबर्स को एक्सेस कर सकते हैं:

// namespace_name2 के मेंबर्स एक्सेस करने के लिए
using namespace namespace_name1::namespace_name2;

// namespace_name1 के मेंबर्स एक्सेस करने के लिए
using namespace namespace_name1;

उदाहरण

#include <iostream>
using namespace std;

// पहला नेमस्पेस
namespace first_space {
    void func() {
        cout << "first_space के अंदर" << endl;
    }
    
    // दूसरा नेमस्पेस (नेस्टेड)
    namespace second_space {
        void func() {
            cout << "second_space के अंदर" << endl;
        }
    }
}

using namespace first_space::second_space;

int main() {
    // यह second_space से फ़ंक्शन कॉल करता है
    func();
    return 0;
}

आउटपुट

second_space के अंदर

नेस्टेड नेमस्पेस के उन्नत उपयोग

बाहरी नेमस्पेस से एक्सेस

namespace outer {
    int x = 10;
    namespace inner {
        void print() {
            cout << "x = " << x << endl; // बाहरी नेमस्पेस का x एक्सेसिबल है
        }
    }
}

पूरी तरह से क्वालिफाइड नाम

int main() {
    first_space::func();           // "first_space के अंदर"
    first_space::second_space::func(); // "second_space के अंदर"
    return 0;
}

नेमस्पेस एलियास

namespace fs = first_space::second_space; // छोटा नाम
fs::func(); // कॉल करता है

इनलाइन नेमस्पेस (C++11)

namespace version {
    inline namespace v1 {
        void func() { cout << "v1"; }
    }
    namespace v2 {
        void func() { cout << "v2"; }
    }
}

// version::func() v1::func() को कॉल करता है (इनलाइन के कारण)

अनाम नेमस्पेस

namespace {
    int internal_var = 42; // केवल इस ट्रांसलेशन यूनिट में विजिबल
    void internal_func() { }
}
// static ग्लोबल्स के बराबर

सर्वोत्तम अभ्यास

  • नेमस्पेस नेस्टिंग को उथला रखें (2-3 स्तर तक)
  • विवरणात्मक नाम उपयोग करें
  • लंबे नेस्टेड नामों के लिए एलियास बनाएं
  • आंतरिक लिंकेज के लिए अनाम नेमस्पेस प्रीफर करें
  • using namespace std; हेडर फ़ाइल्स में न करें
  1. C++ में कंसोल क्लियर करना C++ में कंसोल क्लियर करना

    C++ में कंसोल स्क्रीन क्लियर करने के लिए प्लेटफॉर्म-विशिष्ट कमांड का उपयोग करना पड़ता है। Linux/Unix में clear और Windows में cls कमांड उपयोग होती है। Linux/Unix के लिए #include <iostream> #include <cstdlib> using namespace std; int main() { cout << Screen will be cleared in

  1. - PHP नेमस्पेस अवलोकन: नाम संघर्ष से बचाव

    परिचय PHP में, नेमस्पेस के उपयोग से समान नाम वाली क्लासेज/फंक्शन्स/कॉन्स्टेंट्स को विभिन्न संदर्भों में बिना किसी संघर्ष के उपयोग किया जा सकता है, जिससे इन आइटम्स को एनकैप्सुलेट किया जाता है। एक नेमस्पेस क्लासेज/फंक्शन्स आदि का तार्किक समूह है जो उनकी प्रासंगिकता पर निर्भर करता है। जैसे एक ही नाम क

  1. - C# में नेस्टेड नेमस्पेस (Nested Namespaces)

    परिचय नेमस्पेस के अंदर नेमस्पेस घोषित करना नेस्टेड नेमस्पेस कहलाता है। कोड को तार्किक रूप से व्यवस्थित करने के लिए उपयोगी। सिंटैक्स Console.WriteLine(Inner Namespace); } } } उपयोग using System; namespace Outer { class Program { static void Main(string[] args)