问题描述
我正在尝试搜索指向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
,因为找不到)。>