我正在将游戏从 Obj-C 移植到 C++。并停留在我必须将 Obj-C 协议转换为 C++ 中的等效协议的地方。我很困惑在 C++ 中实现相同功能的正确方法应该是什么。
请指教。
@protocol A <NSObject>
-(void) B:(NSObject*)data;
@end
@interface callBack: NSObject
{
id<A*> delegate;
}
我正在将游戏从 Obj-C 移植到 C++。并停留在我必须将 Obj-C 协议转换为 C++ 中的等效协议的地方。我很困惑在 C++ 中实现相同功能的正确方法应该是什么。
请指教。
@protocol A <NSObject>
-(void) B:(NSObject*)data;
@end
@interface callBack: NSObject
{
id<A*> delegate;
}
您可以实现类似于使用纯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
}
}
最后,请使用大写的类名称。