gpt4 book ai didi

c++ - C 的 -> 是否等同于 Objective-C 中的点符号

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:05:05 24 4
gpt4 key购买 nike

我正在做 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++ 中的区别,希望对您有所帮助。

. 是允许您访问结构/类实例成员的运算符。 a->b(*a).b 相同 - 因此它首先取消引用指针,然后访问指针指向的实例成员。

此外,Luchian 提到了一个案例 - 重载给定类的 operator->()。如果您使用的类确实重载了此运算符,则行为将有所不同,由类定义 - 它几乎可以返回它想要的所有内容。

关于c++ - C 的 -> 是否等同于 Objective-C 中的点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10683072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com