Namespace



  • Wie benutze ich namespace mit einer Klasse?

    Ich möchte das die Klasse nur in einer Headerdatei verwendet werden kann. (wegen inline)

    FUNKTION()
    {
       Klasse->Methode();
    }
    

    Aber das Objekt ist auch in anderen Dateien zu sehen. Jetzt habe ich mir gedacht das mit Namenspace zu machen. Doch das Objekt ist immer noch zu sehen.

    😞



  • So meinst du?

    namespace Name
    {
    // Hier deine Klasse
    class A { };
    }
    
    // Zugriff jetzt über:
    Name::A NewObj();
    


  • Hi,

    ambesten du verwendest

    using namespace std;
    // Das std muss natürlich durch Name ersetzt werden. War ja nur ein Beispiel.
    


  • c++eus schrieb:

    Hi,

    ambesten du verwendest

    using namespace std;
    

    lol 😃 😃 😃



  • Strogij schrieb:

    So meinst du?

    namespace Name
    {
    // Hier deine Klasse
    class A { };
    }
    
    // Zugriff jetzt über:
    Name::A NewObj();
    

    Ja in etwa so.

    Bei mir ist aber NewObjekt ein Zeiger

    Name::A *NewObjekt();
    

    und das was mich stört. Es ist auch möglich ohne Name:: über den Zeiger auf die Methoden zuzugreifen.

    Oder mache ich was falsch?



  • Also dafür sind die Namespaces nicht gedacht. Du machst ja ein neues Objekt daraus und zwar aus Name::[] heraus. Was du danach an Objekten hast sind eigenständige Dinge, sonst würde es nur Unfug geben.



  • für die sichtbarkeit verwende public und private.
    ein namespace hat damit nichts zu tun. innerhalb eines namensraums müssen die verwendeten namen eindeutig sein.


Log in to reply