gpt4 book ai didi

c++ - 无法取消引用双指针 “no match for operator* ”

转载 作者:行者123 更新时间:2023-12-03 07:15:29 25 4
gpt4 key购买 nike

我正在尝试搜索指向Shape类的对象的指针数组。我写了下面的代码。但是,我收到此错误:“操作符不匹配*”,而且我不知道从这里去哪里。任何帮助表示赞赏。

Shape** shapesArray;

bool doesNameExist(string name) {
for (int i = 0; i < shapeCount; i++)
{
if(*(shapesArray[i])->getName() == name)
{
return true;
}
else
{
return false;
}
}

}

最佳答案

  • shapesArrayShape**
  • shapesArray[i]Shape*
  • (shapesArray[i])->getName()正在取消引用shapesArray[i]并调用其
    成员getName

  • 到目前为止,没有错。我想这是您实际上想要得到的,但是您添加了另一个 *:
  • *(shapesArray[i])->getName()尝试取消引用getName返回的内容(也许是std::string?)

  • PS:无论哪种情况,您都将在第一次迭代中从循环中返回。如果要在数组中搜索,则需要循环直到找到它(然后是 return true),或者循环到最后(然后在循环之后,然后是 return false,因为没有找到)。

    关于c++ - 无法取消引用双指针 “no match for operator* ”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64594703/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com