如何编写此方法的定义,我收到错误
how to write the definition for this method i am getting error
提前致谢我正在尝试编写该方法的定义
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)
很难说一个完整的最小、完整和可验证的例子(你应该真正提供),但我猜getMemberFromId
是 Store
的成员函数,但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)
相关文章:
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 使用命名空间时出现多个定义错误
- C++错误C2600:无法定义编译器生成的特殊成员函数(必须首先在类中声明)
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- 在运算符重载定义中使用成员函数(const错误)
- 尝试调用 .h 文件中定义的变量时出现变量未定义错误
- 在C++中使用内联方法时出现未定义的符号错误
- 已定义函数时出现 G++ "未定义的引用"错误
- C++ G++ 编译器 - 错误:隐式声明的定义
- 链接 cmake 时出现未定义的引用错误
- 在头文件和 cpp 文件中使用一次 #pragma 时出现结构重定义错误
- 错误:未定义对'oboe::AudioStreamBuilder::openStream(oboe::AudioStream**)'的引用
- 链接阶段出现多重定义错误
- 已经以性格错误定义了
- vim ctag导致了对乐趣的错误定义
- C++ 隐式声明的编译器错误定义
- 编译器错误-定义问题.C++