Kann nicht auf struct zugreifen
-
Ich habe folgendes Konstrukt:
GlobalClasses.h
#include "settings.h" extern structShaperList ShaperList;GlobalClasses.cpp
#include "GlobalClasses.h" structShaperList ShaperList;settings.h
struct structShaper { QSize CalcPixelSize; QSize AperturPixelSize; QRect SignalWindow; QSizeF AperturRealSize; int Dimensions; QString Description; }; struct structShaperList { structShaper Shaper2D786786; };settings.cpp
#include "GlobalClasses.h" #include <QtCore/QSize> ShaperList.Shaper2D786786.CalcPixelSize = QSize(786, 786);was mir aber mit dem folgendem Fehler quittiert wird:
1>.\src\settings.cpp(8) : error C2143: Syntaxfehler: Es fehlt ';' vor '.'
1>.\src\settings.cpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>.\src\settings.cpp(8) : error C2371: 'ShaperList': Neudefinition; unterschiedliche Basistypen
1> h:\dev\cpp\svn\hibiscus\cpp\qbeamshaping\qbeamshaping\src\GlobalClasses.h(14): Siehe Deklaration von 'ShaperList'ich verstehe aber nicht warum.
Matthias
-
edit: ah, habe übersehen, dass du in GlobalClasses.cpp ja wohl settings.h inkludiert hast.
-
Du kannst nicht einfach ausserhalb von Funktionen Anweisungen schreiben. Ausserdem sollte die Initialisierung der ShaperList in die Datei, in der das Objekt auch definiert wird, also GlobalClasses.cpp. Drittens nimm für die Initialisierung einen Konstruktor, dann brauchst Du nichtmal eine Funktion konstruieren, die das übernimmt.