Wie Sie C++ - Header in eine Objektive C++ - header?
Habe ich eine .cpp/.hpp-Datei combo -> die .hpp-Datei #include ..
Ich habe auch eine .mm/.h-Datei combo -> wenn ich auch die .hpp-Datei in meine .mm Objektive C++ - Datei, gibt es keine Probleme. Allerdings, wenn ich versuche zu umfassen .hpp-Datei in meine .h (Ziel C-header-Datei), ich bekomme eine Präprozessor-Ausgabe "iostream nicht gefunden".
Gibt es eine Möglichkeit, um dieses andere als funky stuff wie ein void* in meinem Objective-C .h-Datei und dann Umwandlung als Art enthalten ist, in der .mm oder einwickeln jedes C++ - Typ innerhalb einer Objective-C++ geben?
Meine Frage ist im Grunde das gleiche wie Tony ' s Frage (aber niemand antwortete ihm sein):
https://stackoverflow.com/questions/10163322/how-to-include-c-header-file-in-objective-c-header-file
- Sie haben zu vermeiden, dass alle C++ - includes/code in den header Ihrer Datei enthalten sein, in anderen nicht Objective-C++ - Klassen. Dies bedeutet, dass Sie möglicherweise verwenden müssen, void* zum speichern von member-Variablen.
- Sie werden Fragen, gibt es einen gültigen Weg für den compiler der Sprache zu kompilieren Sprache B. in der Regel keine. Objective-C kann C-code. Objective-C++ - code C++ - code. Aber C und C++ sind unterschiedliche Sprachen, so halten Sie sehr streng.
- Tatsächlich, das ist nicht das, was ich gefragt wurde -> ich verwende nur Objective C++ und C++. Meine C++ - iostream enthält (z.B. C++) und mein Ziel von C++ - header-Datei kann nicht zählen meine C++ - header-Datei da, die header-Datei include iostream.
- vielen Dank für deine Antwort; wenn man es als Antwort, werde ich markieren Sie es als akzeptiert. Jedoch, ich auf jeden Fall wünschte, es gäbe eine bessere Möglichkeit, mit void* und Gießen überall... :/
- Ich habe etwas besser.. ein Antwort mit undurchsichtigen Zeiger.
- du bist ein Gott!!! Setzen Sie bitte das als Antwort und ich nehme es als die Lösung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Sie haben zu vermeiden, werden alle C++ - Semantik in der Kopfzeile können Sie normale Objective-C-Klassen gehören. Dies kann erreicht werden, mit opake Zeiger.
CPPClass.h
ObjCPP.h
ObjCPP.mm
Einsatz von C++ in eine Objective-C++ - header-Datei stellen Sie sicher, dass:
Die #include-Direktive einfach nur text enthält; die einzige Zeit, in Objective-C wird sich beschweren, wenn es etwas in der include-Datei, die nicht gültig ist Objective C.
In Ihrem Fall, es gibt Sie die Antwort, die iostream.h-header Datei nicht gefunden wird, in Objective C. Finden, wo diese Datei verwiesen wird, und entfernen Sie die #include-it.
#ifdef (__cplusplus)