Namespace funktioniert nicht



  • Hi, ich habe eine Klasse für diese lege ich ein Namespace an

    namespace NAME
    {
      class CKlasse
      {
         void Methode(void);
      };
    };
    
    NAME::CKlasse  *neu;
    
    neu=new NAME::CKlasse;
    

    und trotzdem ist die Methode auch so sichtbar.

    neu->Methode();
    

    ich habe angenommen das man

    NAME::neu->Methode()
    

    verwenden muss?



  • Nö, wieso sollte?
    Du hast erzeugst doch einen Pointer auf ein neues Objekt und dabei gehst du doch in den Namespace somit zeigt der Pointer dorthin.

    Hättest du z.B.

    namespace Eine
    {
      int zahl = 25;
    }
    

    Jetzt müsstest du so darauf zugreifen:

    cout << Eine::zahl;
    

    Du benutzt den ::-Operator nur dann wenn du auf etwas innerhalb des Namespace zugreifen willst, dein Pointer ist aber nicht in dem Namespace sondern in einer deiner Methoden und durch new hast du ein Objekt aus dem Namespace erzeugt, dort zeigt dein Pointer hin befindet sich aber nicht in ihm.
    (weiß net wie ich das sonst erklären soll, habe mich selbst erst heute mit namespaces auseinander gesetzt)

    Code-Hacker


Log in to reply