【发布时间】:2019-03-10 12:37:59
【问题描述】:
我目前正在为学校做一个项目。我正在创建的代码是一个银行账户系统。为了访问不同的成员,我让用户输入他们的成员 ID,该 ID 作为参数之一传递给名为 findMember 的函数。
函数如下:
int findMember(vector<Member> patron, int memID)
{
int vectorSize;
vectorSize = patron.size();
for (int index = 0; index < vectorSize; index++)
{
if (memID == patron[index].getMemberID())
return index;
}
}
这是矢量:
vector<Member*> patron; // Vector to store the members.
这是函数调用:
int acctID, memberIndex;
cout << "Enter your Account ID: ";
cin >> acctID;
memberIndex = findMember(patron, acctID); // Helps find the index if the current stored member.
patron[memberIndex]->menu(); // Opens the current members
storage location.
错误代码如下:
Error (active) E0312 no suitable user-defined conversion from "std::vector<Member *, std::allocator<Member *>>" to "std::vector<Member, std::allocator<Member>>" exists
Error C2664 'int findMember(std::vector<Member,std::allocator<_Ty>>,int)': cannot convert argument 1 from 'std::vector<Member *,std::allocator<_Ty>>' to 'std::vector<Member,std::allocator<_Ty>>'
我在网上搜索了 E0312,但没有找到抛出它的原因。 C2664 也有同样的结果。我的代码哪里出了问题?
另外,提前致谢。
【问题讨论】:
-
很好地提交了问题。现在,查看 findMember() 的第一个参数,然后将其与您的向量声明进行比较。会员与会员* ?选择一个并始终如一地使用它。代码看起来不错,否则。
-
谢谢!这有助于摆脱错误