Я создал стандарт Xcode Objective- C Project, желающий протестировать интеграцию с C ++. Я переименовал свой файл в соответствии с .mm et c.
. Я создал класс C ++ с заголовком .hpp и файлом. cpp imp. Это заголовок
class a {
private:
int anInt = 1;
public:
int getAnInt();
};
Это имп
#include "PrismMatricies.hpp"
int a::getAnInt() {return anInt;}
в моем файле ViewController.mm. Я делаю это после импорта заголовка .hpp
a ar;
NSLog(@"Some Log %i", ar.getAnInt());
Код ошибки сборки в Xcode = неопределенный символ: a :: getAnInt ()
Если я перемещу определение функции внутри заголовка следующим образом
class a {
private:
int anInt = 1;
public:
int getAnInt();
};
int a::getAnInt() {return anInt;}
Проект работает
Может кто-нибудь объяснить это мне, поскольку я просто не понимаю