将目标C协议转换为c++中的等效协议

convert objective C protocol to equivalent in c++

本文关键字:协议 c++ 目标 协议转换      更新时间:2023-10-16

我正在将游戏从Obj-C移植到c++。并且卡住了,我必须将Obj-C协议转换为c++中的等效协议。我很困惑什么是在c++中实现相同功能的正确方法。

请建议。

@protocol A <NSObject>
    -(void) B:(NSObject*)data;
@end

@interface callBack: NSObject
{
    id<A*> delegate;
}

您可以实现类似于使用纯virtual方法创建类的协议。遵循该协议将需要重写这些方法。

"protocol"声明

class ImageDelegate {
    public:
        virtual void getImage(UIImage *) = 0;
}

id<ImageDelegate>来指代ImageDelegate*

class ResInfoCallback : public NSObject {
    public:
       ImageDelegate *delegate;
}

最后你需要一个实现"协议"的类,这意味着覆盖"协议"类的纯virtual方法。

class YourClassConformingToTheProtocol : public ImageDelegate {
    public:
        virtual void getImage(UIImage *image) {
            //do stuff
        }
}

作为最后的注释使用大写的类名