c++使用指针访问对象的成员

标签 c++ pointers struct

我有变量 mode,我用下面一行声明它:

StatusRecord mode;

StatusRecord 是一个struct,它包含多个不同类型的变量。

我现在想创建一个指向 mode 的指针,并通过使用函数填充其属性/字段来用一些数据填充该指针。我试过这样做:

StatusRecord mode;
StatusRecord *modePtr = &mode;
DataStore->getModeData(*modePtr);

在这里,我声明了 struct 变量,创建了一个指向它的指针,并使用 getModeData() 函数填充该指针。但是,我现在想使用我刚刚在条件语句中填充的 struct ptr 的属性:

if(*modePtr->eraseSelect ==2){
    ...
}

但是我在这一行遇到编译错误:

Error: operand of '*' must be a pointer

这是否意味着 eraseSelect 属性应该是一个指针以及“modePtr”?我该如何解决这个错误?

最佳答案

试试这个:

if(modePtr->eraseSelect ==2){
    ...
}

或者这个:

if((*modePtr).eraseSelect ==2){
    ...
}

因此您可以使用“点”语法到达实例的字段或使用“箭头”语法到达实例指针的字段。在大多数情况下,“箭头”更合适。

关于c++使用指针访问对象的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32476185/

相关文章:

c++ - 重载用户定义类型的全局交换

c - 在代码运行期间,初始化的指针是否可能为 NULL?

c++ - int p = *(int *)i 和 int p = *(int *)&i 之间的区别

c - 如何打印数组头部的内容并删除

c - sendto 中的参数无效

用我自己的函数进行 C++ vector 排序

c++ - 最小的跨平台图形用户界面库?

python - 如何将构建的 Cython 扩展从一台 PC 转移到另一台?

c - 结构指针数组段错误

C结构体完成函数的汇编代码