Objective-CでC++オブジェクトを使用/再利用したい。クラス定義を持つhello.hと、クラス実装用のhello.cppがあります。
class Hello
{ int getX() ... };
そして、私はこのクラスをObjective-C関数で使用します。
#include "hello.h"
...
- (IBAction) adderTwo:(id)sender
{
Hello *hi = new Hello();
int value = hi->getX();
NSLog(@"Hello %d", value);
[textField setIntValue:value];
Xcodeでコードをコンパイルすると、このエラーメッセージが表示されます。
class Hello * XXXXX Users/smcho/Desktop/cocoa/adderTwo/hello.h:9:0 /Users/smcho/Desktop/cocoa/adderTwo/hello.h :9: エラー:「こんにちは」の前に「=」、「、」、「;」、「asm」または「__attribute__」が必要です
何が悪かったのか?
そのファイルを「Objective-C++」としてコンパイルしてください。
最も簡単な方法は、名前を*。mmに変更することです。
* .mファイルの名前を変更したくない場合は、
Objective-Cファイルの名前をfilename.m
からfilename.mm
に変更して、Objective-C++としてコンパイルできるようにします。