Funktion in einem anderen NameSpace zugreifen, welche wege gibt es?



  • Hallo
    ich habe ein Problem. Ich möchte auf eine Funktion in einem anderen NameSpace zugreifen. Welche Wege gibt es?
    Beispiel Code:

    namespace Raum1
      namespace Raum2
    
    public: Test_1
    
            void TestFunktion_1(int);
    
    namespace Raum1
      namespace Raum2
        namespace Ort1
    
    public: Test_2
    
            void TestFunktion_2(int);
    

    in der Testfunktion_1 ist eine swich case. Nun will ich eben von dort die TestFunktion_2() aufrufen.
    Wie macht man es am besten?

    Danke


  • Mod

    Wird so etwas nicht auch dort erklärt, wo auch immer du überhaupt die Grundkonzepte von Namespaces her hast?

    TestFunktion_2 's voller Name ist Raum1::Raum2::Ort1::TestFunktion_2 . Die TestFunktion_1 liegt in Raum1::Raum2 . Vor dort aus hat man dann logischerweise die Wahl zwischen dem vollen Namen für TestFunktion_2 , also Raum1::Raum2::Ort1::TestFunktion_2 , oder zwischen dem zu Raum1::Raum2 relativen Namen, also Ort1::TestFunktion_2 .

    Ich weiß nicht, was das public-Zeug in deinem Code zu suchen hat. Das macht überhaupt keinen Sinn. Das deutet darauf hin, dass du hier wahrscheinlich wichtige Konzepte nicht richtig verstanden hast.



  • das ist nur ein kleiner Beispiel ausschnitt aus dem Code.
    Ich versuche mich immer wieder seit ca 1/2 Jahr in C++.
    Problem ist, das ich mit einem kollegen dran arbeite und der hat es C++ wirklich drauf.
    Das mit den Instanzen und Referenzen habe ich immer noch nicht richtig verstanden.

    Ich habe nun ein singelton gemacht, weil auch die Variablen im code nur 1x geben darf. Aber ich muss das nochmal mit meinem Kollegen am Montag noch mal durch sprechen und der soll mir das nochmal erklären.
    Danke


  • Mod

    Ich sehe keinen Zusammenhang zwischen deinen Klagen und deinen Fragen. Vielleicht stellst du die falschen Fragen? Deine jetzige Frage wurde ja beantwortet, aber ich habe leider nicht den Eindruck, dass dir das geholfen hat.



  • also wenn ich das in meinem Programm so schreibe wie du gesagt hast, kommt:
    a nonstatic member referenc must be relative to specific objekt

    glaub das ist alles bisl komplizierter als gedacht und mein Beispiel code nicht ganz korrekt.



  • Zeig ein aufs nötigste reduziertes, bis auf den Fehler kompilierbares Beispiel.



  • Schoof schrieb:

    also wenn ich das in meinem Programm so schreibe wie du gesagt hast, kommt:
    a nonstatic member referenc must be relative to specific objekt

    Das kommt, wenn man Klassen/Objekte nicht verstanden hat. Das hat aber nichts mit Namespace zu tun.


Anmelden zum Antworten