无法取消引用双指针,“操作符不匹配*”

问题描述

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...