Mischen von c un c++
-
Hallo ich habe einProblem und hoffe, dass Ihr mir helfen könnt.
Ich habe eine Header *.h
Der Inhalt isttypedef enum { eins, zwei, drei }T_NAME; class CMotorsteuerung { public: CMotorsteuerung(void); ~CMotorsteuerung(void); public:... }
jetzt möchte ich diese *h in ein *c einbinden und genau das funktioniert nicht.
Habt Ihr eine Idee? Muss ich einen Wrapper einfügen? Wenn ja wie.
-
WAS funktioniert nicht?
-
Oh ja sorry
Das Kompilieren funktioniert nicht. Ich kann erst kompilieren wenn ich die Klassendefinition entferne.
-
hast du den Konstruktor definiert?
Nach der Schlussklammer der class gehört ein ;
-
Ja habe ich. Wenn ich den Header nicht in einem *.c File einbinde sondern nur in *.cpp Dateien funktioniert alles. Ich brauche die enum definitionen aber in einem *.c File
-
C hat halt keine Klassen. Wird der Code in den Einstellungen als C++ Code übersetzt? .c wird als C übersetzt.
-
Ja das ist ja mein Problem es gibt ja einen C++ Wrapper um C und c++ code zu mischen. Aber der funktioniert nicht.
#ifdef __cplusplus extern "C" { #endif /* ifdef __cplusplus */ #ifdef __cplusplus } #endif /* ifdef __cplusplus */
-
Dann mach halt #ifdef __cplusplus ... #endif um die Klassendefinition. Für besonders sinnvoll halte ich das nicht, ich würde wohl eher die C-Anteile (enum) in einen eigenen Header ziehen, aber es müsste funktionieren.
-
Das habe ich nun auch gemacht eine MaschinenClass.h und eine Maschinen.h.
Danke für euere Hilfe