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.