我正在将一个从Obj-C移植到C ++的游戏。并且卡在我必须将Obj-C协议转换为C ++中的等效协议的地方。我很困惑应该是在C ++中实现相同功能的正确方法。
请告知。
@protocol A <NSObject>
-(void) B:(NSObject*)data;
@end
@interface callBack: NSObject
{
id<A*> delegate;
}
答案 0 :(得分: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
}
}
最后一句话请为类使用大写名称。