Objective C协议引用作为C ++类中的实例变量

时间:2012-09-24 11:55:32

标签: c++ objective-c protocols

是不是可以在C ++类中引用Objective C协议?在

(id)<B2ContactListener> _B2ContactListener;

行导致两个错误:

'预期;在声明清单的末尾'

' C ++需要所有声明的类型说明符'。

这是代码。

B2_ContactListener.mm:

#import "Box2D.h"
#import "B2_ContactListener.h"

class ContactListener : public b2ContactListener
{
private:
  (id)<B2ContactListener> _B2ContactListener; // ERRORs

public:
  //Methods
};

B2_ContactListener.h:

#import "B2_Contact.h"

@protocol B2ContactListener
-(void)B2BeginContact: (B2Contact*) contact;
@end

我正在使用当前的XCode编译器BTW。

1 个答案:

答案 0 :(得分:1)

删除括号:

id<B2ContactListener> _B2ContactListener;

这应该有效。

您可能想要考虑的另一件事是将其改为NSObject *,这样您就可以调用从NSObject继承的方法而无需强制转换。