如何编写此方法的定义,我收到错误

how to write the definition for this method i am getting error

本文关键字:错误 定义 何编写 此方法      更新时间:2023-10-16

提前致谢我正在尝试编写该方法的定义

Customer* getMemberFromID(std::string);

这是我写的定义,但我收到一些错误,说 [错误] "类存储"中的"客户"没有命名类型

Store:: Customer* getMemberFromID(std::string id)
{
    for(int i = 0; i < members.size(); i++)
    {
        Customer* c = members.at(i);
        if(c->getAccountID() == id)
        {
            return c;
        }
    }
    return NULL;
}

尝试

Customer* Store::getMemberFromId(std::string const& id)

很难说一个完整的最小、完整和可验证的例子(你应该真正提供),但我猜getMemberFromIdStore 的成员函数,但Customer不是 Store 的成员,你只是对命名规则感到困惑。

注意 当您不需要字符串时,我(std::string id)交换了(std::string const& id)以避免额外的字符串副本。

然后你可以使用标准算法find_if

Customer* Store::getMemberFromId(std::string const& id)
{
    auto foundPos = std::find_if(members.begin(),
                                 members.end(),
                                 [&](Customer* c){ return c->getAccountId() == id; });
    return (foundPos==members.end())
                ? nullptr
                : *foundPos;
}

函数定义规则,

<return type>  <class name> :: <function name><Arguments>

此处更正:

Customer* Store::getMemberFromID(std::string id)
{
// code
}

你的函数原型是错误的。

改变

Store:: Customer* getMemberFromID(std::string id)

Customer* store::getMemberFromID(std::string id)