gpt4 book ai didi

C++ 使用数组指针访问类结构成员

转载 作者:行者123 更新时间:2023-11-28 00:00:25 25 4
gpt4 key购买 nike

如果标题没有意义,请见谅。我不知道如何表达它,因为我是 C++ 的新手。基本上我有这个:

sf::VertexArray *vArray;

如果我想访问里面的位置,我必须这样做:

(*vArray)[0].position = ...;

有没有办法改用箭头符号?为什么我不能这样做:vArray[0]->position = ...;

如有任何帮助,我们将不胜感激!

编辑:sf::VertexArray 是 SFML 库的一部分:https://github.com/SFML/SFML/blob/master/src/SFML/Graphics/VertexArray.cpp

最佳答案

如果你原来的行

(*vArray)[0].position = ...;

正确地说明了你的数据结构的语义,那么基于->的模拟就是

vArray->operator [](0).position = ...;

假设 sf::VertexArray 是一个带有重载运算符 [] 的类类型。显然,第二种形式要复杂得多,需要显式引用运算符成员函数,这就是为什么使用更优雅的第一种形式是更好的主意。

或者,您可以强制将 -> 作为此表达式

(&(*vArray)[0])->position = ...;

但这没有多大实际意义。

你甚至可以把两者结合起来

(&vArray->operator [](0))->position = ...;

得出一些更加模糊和毫无意义的东西。

无论如何,你为什么要在这个表达式中有一个->?你想达到什么目的?

关于C++ 使用数组指针访问类结构成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39441446/

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