Связывание существующей платформы C ++ с приложением Objective-C + Cocoa

Я разработал рабочую среду для окон в школе, в которой есть все классы и методы, необходимые для работы окна. Вот пример части нескольких классов, я не собираюсь вставлять здесь весь код.

Widget.h (базовый класс)

class Widget {
public:
Widget(...);
...
virtual std::string getLabel() const;
virtual void setLabel(const std::string label);
...
private:
std::string m_label;
Widget* m_parent;
Measure m_position; // struct: int x, int y
Measure m_size;
};

button.h

class Button : public Widget {
public:
Button(...);
...
virtual void setTarget(Widget* target);
...
private:
Widget* m_target;
};

LineEdit.h

class LineEdit : public Widget {
public:
LineEdit(...);
...
virtual void setMaximumLenght(int lenght);
...
private:
int m_maximumLength;
};

И так далее … Это все только заголовочные файлы, и я реализовал методы и т. Д. Внутри соответствующего .cpp файл.

Моя домашняя работа на этот период — реализовать их для Mac OS-X в Objective-C и Cocoa, чтобы заголовки работали как в OS-X, так и в Windows. Я могу сделать отдых сам, но я хотел бы знать, как использовать эти заголовочные файлы в OS-X, и, следовательно, просто переписать реализации в .m файл вместо .cpp, Есть идеи? Я новичок в этом деле.

0

Решение

Вы можете комбинировать файлы .cpp и .m в одном проекте, что означает, что если ваша реализация не имеет какого-либо кода для Windows, вы можете добавить его в проект и скомпилировать. Существует также концепция Objective-C ++. С его помощью вы можете написать код в .mm файлы, использующие как C ++, так и Objective-C, и совершайте вызовы между ними.

С другой стороны, если вам действительно нужно реализовать все в Objective-C, вам нужно переписать заголовки, чтобы определить классы Objective-C (не классы C ++), а также переписать реализацию.

0

Другие решения

Других решений пока нет …