E0312, C2664 Ошибка при попытке передать векторный объект в качестве параметра функции - PullRequest
0 голосов
/ 10 марта 2019

Я сейчас работаю над проектом для школы.Код, который я создаю, представляет собой систему банковских счетов.Чтобы получить доступ к различным членам, у меня есть пользователь, который вводит их идентификатор члена, который передается как один из параметров в функцию с именем 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 имел такие же результаты.Где я ошибаюсь с моим кодом?
Также, заранее спасибо.

1 Ответ

0 голосов
/ 10 марта 2019

Спасибо @ 2785528 ​​за ответ.

Я был несовместим с тем, как проезжал vector<Member*>. Как только эта ошибка была исправлена, все, что нужно было сделать, это изменить patron[index].getMemberID() на patron[index]->getMemberID().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...