Hmm....die Fehlermeldung ist eindeutig. Irgendwo in deinem Code haste die Variabel noch einmal Definiert. Ist das denn nur bei dieser einen oder auch bei allen anderen?
Was nutzt man denn jetzt einen solchen namespace?
Namespaces nutzt man dann wenn man z.B. eine Bibliothek, wie z.B. die STL, aufbaut.
Also using namespace blaBla is klar und dann?
was bringt der einem?
Namespaces verhindern das Variablen, Klassen, Strukturen usw. mehrfach Definiert werden. Z.B.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
|
// Klasse von Bibliothek XY
class Node
{
....
};
// Jetzt willst du auch eine Klasse Node erzeugen, aus irgend welchen Gründen
class Node
{
....
};
// Ist ein Fehler. Der Compiler schmeißt nun eine Fehlermeldung ala Redefinition of class "Node"
|
Aber so geht's
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// Klasse von Bibliothek XY
namespace xy
{
class Node
{
....
};
}
// Deine Node Klasse
class Node
{
....
};
|
Des weiteren sollte man ein using namespace blabla immer vermeiden. Besser ist wenn man nur bestimmte Klassen angibt.
|
Quellcode
|
1
2
|
include <string>
using std::string;
|