使用 C++ 类作为 objective-c 类中的协议

Using a C++ class as a protocol in a objective-c class

本文关键字:objective-c 协议 C++ 使用      更新时间:2023-10-16

我有一个纯 c++ 的抽象类(带有纯虚函数),我必须在目标 c 类中实现它,我该怎么做?

如果我声明,

@interface MyClass : NSObject <MyOtherClass>

它抛出一个错误告诉协议未在MyOtherClass中定义

C++类的定义:

class MyOtherClass
{
    virtual void myFunc() = 0;
};

提前致谢

协议是Objective-C的一个特性,而不是C++。

你的MyClass不能使用任何非objective-c类作为它的协议。

正如杰里米·

确保包含该标头的任何文件都编译为 C++通过将扩展名更改为 .mm 或更改 要sourcecode.cpp.objcpp的文件类型。