redefinition... wo denn?!?
-
Hallo,
ich hab ein kleines Projekt, das aus 7 Cpp-dateien besteht und alle Datentypen werden in der datastructures.cpp definiert. Diese wird dann von jeder einzelnen Datei included... Jetzt meckert mir der Compiler immer bei der main.cpp , dass ich eine redefinition habe (alle anderen Dateien werden brav compiliert...). Woran mag da liegen?!?
ich habe mal die Struct beigefügt, bei der gemeckert wird...
struct AlignSpeicher { int score; string s1; string s2; string s1name; string s2name; AlignSpeicher(string s1nam, string s2nam, int sc, string s1a, string s2a){ score= sc; s1name=s1nam; s2name=s2nam; s1=s1a; s2=s2a; } bool lt(const AlignSpeicher& k) const { return score < k.score;} //zum Sortieren muss ich sie mit "<" vergleichen können bool operator < (AlignSpeicher const & other) const { return score < other.score; } };
-
mit deinem struct hat es wohl eher weniger was zu tun.
schreib den include doch mal in die stdafx.h
#include "datastructures.cpp"
-
Ich nehme mal an, der Compiler sagt auch dazu, was (und wo) redefiniert wurde

-
Deklaration in ner .cpp und includen einer .cpp in eine .cpp? Womöglich auch noch paralleles Kompilieren (neben dem Includen) dieser .cpp?
Rethink your design!

-
Hast du die Header mit #ifdef geschützt?
Falls nicht, bekommst du das Problem beim zweiten include der Datei.