我正在进行Box2D编程,并且抬起头来,我是C和C的总菜鸟.我是一个Objective-C家伙,这就是为什么我对语言的理解变得非常困难.特别:
->
基本上我理解这用于引用不同的方法或函数或变量/属性,如下所示:
body->GetWorld()->DestroyBody(body);
这相当于Objective-C中的点符号:
// made up example [body.world destroyBody];
要么
[self destroyBody:body.world];
或类似的东西?我真的不明白这一点.有人可以告诉我这是什么.谢谢!
解决方法
我不知道Objective-C,但我可以解释 – >之间的区别和.在C和C中,希望有所帮助.
.是允许您访问struct / class实例的成员的运算符. a-> b与(* a).b相同 – 因此它首先取消引用指针,然后访问指针所指向的实例的成员.
此外,还有一种情况是Luchian提到 – 重载了给定类的operator->().如果你正在使用的类确实重载了这个操作符,那么行为将是不同的,由类定义 – 它几乎可以返回它想要的所有内容.