Namespace deklariert in file a, Nutzung in file b
-
Wenn b a nicht braucht, wieso steht in b.h dann:
template<typename Tin, typename Tout> class a;?
-
centershock schrieb:
Ok, ich hab den namespace Clamping in eine weitere Datei ausgelagert und diese dann in a und b inkludiert.
Jetzt bekomme ich den Fehler in Klasse b:
error: previous definition of ‘class b’Wo kommt das denn jetzt her?
Include-Guards gesetzt?
-
EOutOfResources schrieb:
centershock schrieb:
Ok, ich hab den namespace Clamping in eine weitere Datei ausgelagert und diese dann in a und b inkludiert.
Jetzt bekomme ich den Fehler in Klasse b:
error: previous definition of ‘class b’Wo kommt das denn jetzt her?
Include-Guards gesetzt?
oder wenigstens
#pragma once
-
Skym0sh0 schrieb:
oder wenigstens
#pragma onceLeider nicht Standard. Ich hoffe, sie werden es irgendwann einmal standardisieren.
-
ja, dass es nicht standard ist weiss ich...
mh, ich weiss nicht wieso, aber ich mag pragma once nicht. die normalen include guards per #ifndef und #define sind mir viel lieber...
wobei eigentlich ist so wie in java schöner, aber alles rein subjektive empfindung...
-
Gott sei Dank, es funktioniert endlich!!!
Ich hab die Datei, in die ich den Clamping-namespace ausgelagert hab, nur in class b inkludiert und die Include-Guards gesetzt. Dann hat es funktioniert.
Ich danke euch *vielmals* für eure Hilfe!!
Gruß,
centershock
-
a nutzt das aber auch. Klar nutzt b auch c und daher ist das Inkludieren von b in a für den Moment ausreichend, aber c in a und in b zu inkludieren, sollte nicht zu einem Fehler führen und ist eigentlich auch die sauberere Lösung.
-
Du hast recht, es in beiden Klassen zu inkludieren ist besser.
Hab ich jetzt auch gemacht und führt auch nicht zu einem Fehler!
-
centershock schrieb:
Hab ich jetzt auch gemacht und führt auch nicht zu einem Fehler!
Demzufolge hattest du die Include-Guards vergessen, nicht?
EDIT: Zeitform gefixt
-
Ich hab Include-Guards in beiden Dateien und es führt nicht zu einem Fehler...