由于我不是C ++开发人员,我想知道是否可以直接使用Objective-C扩展b2ContactListener类,或者如果我必须包装b2ContactListener。
谢谢。
答案 0 :(得分:0)
在Cocoa中使用box2d需要Objective-C ++。 。这是一种强大的语言,也是学习C ++的有趣方式。
Objective-C ++的一个规则是,Objective-C类不能扩展C ++类(反之亦然),因此确实需要使用组合而不是继承(换句话说换行)。 。 。我在这里使用的是术语组合,因为"composition vs inheritance"是实现相同结果的常见设计策略。
答案 1 :(得分:0)
你必须把它包起来。没有办法用Objective-C或Obj-C ++类子类化C ++类。因此,要么只是在Objective-C ++中创建一个包装器,要么创建一个C ++类来扩展它。还应注意,扩展名为.mm的文件将编译为“Objective-C ++”而不是.m编译为Objective-C。