使用数组指针访问类结构成员
C++ access class struct member using an array pointer
对不起,如果标题没有意义。我不知道如何形容,因为我对c++还是个新手。这里是:
sf::VertexArray *vArray;
如果我想访问里面的position
,我必须这样做:
(*vArray)[0].position = ...;
是否有办法使用箭头符号代替?为什么我不能这样做:vArray[0]->position = ...;
?
任何帮助将不胜感激!
EDIT: 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 = ...;
得到一些更加混乱和毫无意义的东西。
无论如何,为什么要在这个表达式中有一个->
?你想达到什么目标?
相关文章:
- 具有结构成员char数组的sscanf
- 仅使用结构名称访问结构成员
- 使用 structType*& 赋给结构成员
- 使用结构成员指针在C++中填充结构
- 聚合初始化,将成员指针设置为同一结构成员
- 为什么结构化绑定不使用"auto&"返回对结构成员的引用,而是返回成员本身
- 是否可以将结构数组别名为结构成员数组?
- 结构成员在访问时被清除
- 如何指示结构成员没有锯齿?
- 为什么继承的结构成员在联合中无法访问?
- 尝试在 qml 中访问结构成员的 QList
- C++/CLI -- 访问结构成员
- 调用在类中声明的结构成员
- 对结构成员的临时绑定引用
- 无法使用 strcpy 将字符串复制到静态结构成员
- 为什么类成员数据必须是静态的才能被模板化类的模板化结构成员访问
- 填充模板化结构类型的结构成员
- C/C++intellisense 0.26.1不显示结构成员列表
- 在源文件中创建具有结构成员的结构
- 如何访问结构成员作为指针