我正在将一个从Obj-C移植到C++的游戏.并且卡在我必须将Obj-C协议转换为C++中的等效协议的地方.我很困惑应该是在C++中实现相同功能的正确方法.
请指教.
@protocol A <NSObject>
-(void) B:(NSObject*)data;
@end
@interface callBack: NSObject
{
id<A*> delegate;
}
Run Code Online (Sandbox Code Playgroud)
您可以实现类似于使用纯virtual方法创建类的协议.符合该协议将需要覆盖此类方法.
"协议"声明
class ImageDelegate {
public:
virtual void getImage(UIImage *) = 0;
}
Run Code Online (Sandbox Code Playgroud)
然后ImageDelegate*像你一样参考id<ImageDelegate>
class ResInfoCallback : public NSObject {
public:
ImageDelegate *delegate;
}
Run Code Online (Sandbox Code Playgroud)
最后,您需要一个实现"协议"的类,这意味着重写virtual"协议"类的纯方法.
class YourClassConformingToTheProtocol : public ImageDelegate {
public:
virtual void getImage(UIImage *image) {
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
作为最后的评论,请使用大写的名称.
| 归档时间: |
|
| 查看次数: |
1517 次 |
| 最近记录: |