Namespaces



  • Hallo Liste,

    kann mir bitte jemand den Unterschied zwischen

    datei.h:
    namespace test {
    int test1(int);
    }
    
    datei.cpp:
    using namespace test;
    int test1(int x){
     return x;
    }
    

    und

    datei.h:
    namespace test {
    int test1(int);
    }
    
    datei.cpp:
    namespace test{
    int test1(int x){
     return x;
    }
    }
    

    erklären?

    Gruß
    Boris



  • Mit using namespace ... öffnest du den Namespace für den Rest dieser Übersetzungseinheit. Bei der zweiten Variante ist der Namespace nur innerhalb der Klammern offen.



  • hjdt schrieb:

    datei.h:
    namespace test {
    int test1(int);
    }
    
    datei.cpp:
    using namespace test;
    int test1(int x){
     return x;
    }
    

    Deklariert eine Funktion test1 im Namespace test (also test::test1) und definiert eine zuvor nicht deklarierte Funktion test1 im globalen Namensraum (also ::test1). Es existiert bisher aber keine Definition für test::test1.

    hjdt schrieb:

    datei.h:
    namespace test {
    int test1(int);
    }
    
    datei.cpp:
    namespace test{
    int test1(int x){
     return x;
    }
    }
    

    Deklariert eine Funktion test1 im Namespace test (also tes::test1) und definiert
    diese Funktion danach.


Log in to reply