Ich bin relativ neu in C++ und derzeit ein Problem, das unten beschrieben. Bitte geben Sie Ihre Eingaben an, um das Verständnis für den Namespace zu verbessern und dieses Problem zu lösen.C++ - Namespace-Fehler: kein Mitglied von Namespace
Ich habe eine Variable in einem Namespace als extern in einer Header-Datei deklariert, sagen a.h Ich schließe diese Datei in eine .cpp-Datei sagen a.cpp und definieren diese Variable im selben Namespace. Das funktioniert gut. Jetzt bin ich diese Header-Datei in einer anderen CPP-Datei enthalten, sagen b.cpp und diese Variable in einem anderen Namespace verwenden. Dies wirft den Fehler auf, dass die Variable 'a' in diesem Bereich nicht deklariert ist. Ich schließe den Namespace mit 'using namespace' in der Datei b.cpp ein. Trotzdem bekomme ich den gleichen Fehler. Wenn Sie den Ausdruck namespace :: variable in b.cpp verwenden, wird die Fehlermeldung ausgegeben, dass die Variable 'a' kein Mitglied dieses Namespaces ist.
Im Folgenden sind die Code-Schnipsel zum Verständnis meines Problems.
// a.h
namespace example1
{
extern int a;
}
// a.cpp
#include"a.h"
namespace example1
{
a = 10;
}
// b.cpp
#include"a.h"
namespace example2
{
a = 5; // error : 'a' not declared in this scope.
}
// b.cpp
#include"a.h"
using namespace example1;
namespace example2
{
a = 5; // error : 'a' not declared in this scope.
}
// b.cpp
#include"a.h"
namespace example2
{
example1::a = 5; // error : 'a' not a member of example1.
}
Vielen Dank im Voraus.
Grüße, Karthik
'a = 10;' soll auch einen Fehler erzeugen. – Oliv
Ich muss auf die Variable 'a' im Namespace von example2 zugreifen. Wie mache ich es? – user1948512
Sie können jedoch keine Variablen im Namensraumbereich zuweisen. Im Namensraumbereich können Sie nur eine Variable deklarieren oder definieren. 'a = 10' ist keine Definition. Sie können Variablen nur in Funktionen zuweisen. Wenn Sie a definieren möchten, schreiben Sie "int a = 10;" – Oliv