0

我正在将游戏从 Obj-C 移植到 C++。并停留在我必须将 Obj-C 协议转换为 C++ 中的等效协议的地方。我很困惑在 C++ 中实现相同功能的正确方法应该是什么。

请指教。

@protocol A <NSObject>

    -(void) B:(NSObject*)data;

@end


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

1 回答 1

5

您可以实现类似于使用纯virtual方法创建类的协议。符合该协议将需要覆盖这些方法。

“协议”声明

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

ImageDelegate*然后像你一样引用id<ImageDelegate>

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

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

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

最后,使用大写的类名称。

于 2013-01-03T23:22:47.327 回答