Подтвердить что ты не робот

Как использовать С++ с Objective-C в XCode

Я хочу использовать/повторно использовать объект С++ с Objective-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: 
error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Hello'

Что пошло не так?

4b9b3361

Ответ 1

Убедитесь, что вы скомпилируете этот файл как "Objective-C ++".

Самый простой способ - переименовать его как *. мм.

Если вы не хотите переименовывать *.m файл,

  • Выберите файл.
  • Откройте диалоговое окно "Информация о файле" (Cmd + I)
  • В "Тип файла" выберите "sourcecode.cpp.objcpp"

Ответ 2

Переименуйте файл Objective-C с filename.m на filename.mm, чтобы он скомпилировался как Objective-C ++.