通过指针访问结构数组
Accessing a structure array through a pointer
我有一个类,它的位置有一个结构:
class thing
{
void setCoOrds(int, int, int);
string name;
struct location
{
int x;
int y;
int z;
} coOrd;
};
然后在一个函数中,我创建了一个类型thing的数组。
int main()
{
thing * p_myThings = new thing[5];
// call array element here to use setCoOrds()
delete p_myThings;
return 0;
}
从主函数中,我如何访问thing元素[3],以便使用它的.setCoOrds()函数?
应该是:
p_myThings[3].setCoOrds
还有
setCoOrds
默认情况下是私有的,这将不允许您调用该函数。
int main()
{
thing * p_myThings = new thing[5];
p_myThings[3].setCoOrds(42,21,0);
delete[] p_myThings; // use delete[] for arrays btw
return 0;
}
我假设成员函数
void setCoOrds(int, int, int);
具有公共访问控制。在这种情况下,您可以使用以下结构
p_myThings[3].setCoOrds( x, y, z );
或
( *( p_myThings + 3 ) ).setCoOrds( x, y, z );
或
( p_myThings + 3 )->setCoOrds( x, y, z );
您应该使用:
p_myThings[3].setCoOrds(x, y, z);
对于删除指针数组,您应该使用delete[]而不是delete
相关文章:
- C++将文本文件中的数据读取到结构数组中
- JSON转换为nlohmann JSON-lib中的结构数组
- 需要帮助将结构数组传递给函数
- 在 64 位边界上对齐C++结构数组?
- 带有枚举方向/类型的气泡排序结构数组
- 在C++中访问结构数组中的数据
- 从指向结构数组的指针中提取元素
- 如何制作一个地图,其中的值是C++中的结构数组
- 如何在函数中显示结构数组
- 包含作为成员C++函数的结构数组
- 如何修复函数中的 fstream 文件输入以将正确的信息存储在结构数组中?
- std::transform 将一个结构数组复制到另一个结构数组
- 将非托管结构数组封送到托管数组
- 显示结构数组
- 结构数组中所有类似字段的总和
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- 在 glsl opengl 中将嵌套结构数组作为统一传递
- 使用初始化列表填充C++中的多维结构数组时出现问题
- 如何将字符串字符与结构数组进行比较?
- C++结构数组