如何返回指向对象的指针

How to return a pointer to an object?

本文关键字:对象 指针 何返回 返回      更新时间:2023-10-16

我创建了两个类,一个称为Pair(因为数据成员有一个动态分配的KEY字符数组和一个double值数组),另一个Collection(它是Pairs的集合,作为数据成员,它有一个动态分配的Pairs数组和sizeOfPairs的int变量)。Collection类应该有一个方法,该方法应该返回指向具有所提供键的第一个对象的指针,如果该对象不存在,则返回NULL指针。这就是我使用该方法的程度,但第4行出现错误(错误:间接寻址需要指针操作数("Pair"无效))。我返回指向对象的指针的方式正确吗?

Pair *find(const char *key){
        for(int i = 0; i < sizeOfPair; ++i){
        if(pair[i].getKey() == key){
            return *pair[i];
        }else{
            return NULL;
        }
    }
}
Pair *find(const char *key){
        for(int i = 0; i < sizeOfPair; ++i){
        if(pair[i].getKey() == key){
            return pair + i; // Address of pair[i]
        }else{
            return NULL;
        }
    }
}