000
07.02.2007, 00:57 Uhr
halber
|
Ich habe mal wieder ein nicht ganz triviales Problem. Ich habe zwei Klassen, die beide eine andere Klasse verwenden, die leider in zwei inkompatiblen Versionen existiert. Die liegen in zwei verschiedenen Verzeichnissen. Natürlich wird nirgends ein namespace verwenden und dadurch entstehen die üblich Problem, wenn man beide verwenden muss. Ich hatte jetzt die glorreiche Idee einfach etwas der folgenden Art zu machen:
C++: |
namespace eins { #include “Klasse1.h“ } namespace zwei { #include “Klasse2.h“ }
using eins::Klasse1; using zwei::Klasse2;
|
soweit so gut nur bekomme ich jetzt immer den Fehler:
Code: |
undefined reference to `eins::Klasse1::Klasse1()` usw... Für alle Methoden der Klasse halt.
|
wenn ich versuche ein Object der Klasse anzulegen. Die einzigste Lösung die ich bisher habe ist, dass ich einfach hergehe und in den entsprechenden namespace die zugehörige .cpp Datei includiere. z.B.
C++: |
namespace eins { #include “Klasse1.h“ #include “Klasse1.cpp“ }
|
Das finde ich nicht besonders schön. (Von dem restlichem Misst mal ganz abgesehen. Nur kann ich daran nichts ändern.) Meine Frage ist jetzt, wäre das denn in Ordnung, wenn man .h und .cpp Datei includiert bzw. hat das irgendwelche unschönen Folgen? Oder weiß jemand eine Bessere Lösung für dieses Problem. Ich hoffe mal ich war verständlich. Bedanke mich jedenfalls schon mal für Hilfreiche antworten. -- Ich bin faul und mein Computer ist schnell! |