无法取消引用双指针,“不匹配运算符*”
Cannot dereference double pointer, " no match for operator* "
我正在尝试搜索指向 class 形状对象的指针数组。我写了下面的代码。但是,我收到此错误:“不匹配运算符*”,而且我不知道从这里去哪里。感谢任何帮助。
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()
试图取消引用 return 从 getName
编辑的内容(也许是 std::string
?)
PS:在任何一种情况下,您从第一次迭代的循环中 return。如果你想在数组中搜索你需要循环直到找到它(然后 return true
)或者循环直到结束(然后在循环之后 return false
,因为它没有找到)。
我正在尝试搜索指向 class 形状对象的指针数组。我写了下面的代码。但是,我收到此错误:“不匹配运算符*”,而且我不知道从这里去哪里。感谢任何帮助。
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()
试图取消引用 return 从getName
编辑的内容(也许是std::string
?)
PS:在任何一种情况下,您从第一次迭代的循环中 return。如果你想在数组中搜索你需要循环直到找到它(然后 return true
)或者循环直到结束(然后在循环之后 return false
,因为它没有找到)。