C++ 传递指向对象的指针的指针,无法访问成员
C++ Passing a Pointer to a Pointer to an Object, cannot access members
我正在创建一个程序,该程序创建两个对象并通过一个包含许多选项的大菜单传递它们。我一直用来将它们作为参数传递的解决方案是创建一个指向对象的指针。但是,我遇到了一个问题,如果我使用指向对象的指针作为参数,则会出现编译器错误。显然,我在这里没有想到一个 c++ 约定。
void runMainMenu(Point** ptrPtrPoint)
{
.
.
*ptrPtrPoint->displayCoord();
.
}
据我所知,此操作应该是可能的,但这立即被拾取为错误"表达式必须具有指向类的指针类型(当间接寻址运算符与指向类的指针一起使用时,它应该如此(。传递指向对象的指针和访问成员函数的正确格式是什么?
您已成为运算符优先级的受害者。
首先取消引用以获取Point*
,然后使用->
(*ptrPtrPoint)->displayCoord();
编译器将原始代码读取为
*(ptrPtrPoint->displayCoord());
问题是运算符优先级。
您首先需要取消引用指针到指针,然后使用->
调用函数。正确的代码行是这样的:
(*ptrPtrPoint)->displayCoord();
请注意运算符优先级,因为在这种情况下,编译器会给您一个错误,但事实并非如此。有时,这些错误可能会产生未定义的行为或未执行的行为。
相关文章:
- 通过指向指针数组的指针访问子类的属性
- 使用指针访问数组中的对象数据成员
- 无法通过指针访问对象的成员
- decltype:使用指针访问类的静态成员
- 是否可以使用指针访问变量以避免直接编辑变量?
- 为什么 C++ 地址中的矢量无法通过原始指针访问
- 使用指针访问数组元素时出现意外结果
- 使用指针访问数组的值
- C++继承从基类指针访问派生类中的非虚拟函数
- 如何使用指针访问成对向量的元素
- 为什么有些库提供无指针访问,而另一些库则不提供
- 如何通过引用或指针访问二维矢量
- 使用指针访问参数接收的结构中的元素时内存泄漏
- 我正在学习C++,我不能使用指针访问参考吗?(举个例子)
- 复制堆栈上的成员值或使用指针访问它?
- C++娜娜 如何从全局列表框*指针访问列表框内的索引 0 上的按钮?
- 通过此指针访问时的成员差异和自身的成员指针(简单的 QT 示例问题)
- 从指针访问 Kaguya Lua 状态
- 说明通过指针访问非静态类成员函数
- 有没有办法使用初始化到第一行的指针访问 2d 数组的第二行?