【发布时间】:2021-02-12 02:36:33
【问题描述】:
我正在尝试搜索指向 Shape 类对象的指针数组。我已经编写了以下代码。但是,我收到此错误:“与运算符* 不匹配”,我不知道从哪里开始。任何帮助表示赞赏。
Shape** shapesArray;
bool doesNameExist(string name) {
for (int i = 0; i < shapeCount; i++)
{
if(*(shapesArray[i])->getName() == name)
{
return true;
}
else
{
return false;
}
}
}
【问题讨论】:
-
[i]首先取消引用。->进行第二次取消引用。*正在尝试取消引用getName()返回的内容。 -
请解释您认为
if(*(shapesArray[i])->getName() == name)做了什么。 -
如果想避免这样的麻烦,请使用
std::array或std::vector -
无论判断结果如何,在循环的第一次迭代中也返回看起来很奇怪。
-
尝试在点运算符中多使用一个括号。也许它有助于像这样的声明
if((*(shapesArray[i])).getName() == name)
标签: c++ operator-keyword dereference double-pointer