如何解决无法取消引用双指针,“操作符不匹配*”
我正在尝试搜索指向Shape类的对象的指针数组。我写了下面的代码。但是,我收到此错误:“操作符不匹配*”,而且我不知道从这里去哪里。任何帮助表示赞赏。
Shape** shapesArray;
bool doesNameExist(string name) {
for (int i = 0; i < shapeCount; i++)
{
if(*(shapesArray[i])->getName() == name)
{
return true;
}
else
{
return false;
}
}
}
解决方法
-
shapesArray
是Shape**
-
shapesArray[i]
是Shape*
-
(shapesArray[i])->getName()
正在取消引用shapesArray[i]
并调用其 成员getName
到目前为止,没有错。我想这是您真正想要得到的,但是您添加了另一个*
:
-
*(shapesArray[i])->getName()
尝试取消引用getName
返回的内容(也许是std::string
?)
PS:无论哪种情况,您都将在第一次迭代中从循环返回。如果要在数组中搜索,则需要循环直到找到它(然后是return true
)或循环到最后(然后是循环之后的return false
,因为找不到)。>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。