Я пытаюсь перебрать вектор пользовательского класса «Phone» и использовать «find» с циклом for для отображения индекса (объекта «Phone») всего списка информации об объекте. Жалуется, что нет экземпляра конструктора, который соответствует списку аргументов. Я делаю что-то не так или это ошибка, как в некоторых других случаях? Я довольно новичок в кодировании.
Телефон - это подкласс, унаследованный от родительского класса "Электроника"
Я попытался автоматически ввести find_if, а также перегрузить оператор в Electronics.h
(Electronics.h)
class Electronics
{
protected:
string _model;
public:
Electronics();
~Electronics();
string getModel();
friend bool operator== (const Electronics &n1, const Electronics &n2);
};
bool operator== (const Electronics &n1, const Electronics &n2)
{
return n1._model == n2._model;
}
------------------------------------------------------------------------------
(Phone.h)
#include "Electronics.h"
class Phone : public Electronics
{
private:
string _carrier;
string _simCard;
public:
Phone();
~Phone();
string getCarrier();
};
------------------------------------------------------------------------------
(Main.cpp)
void searchData(vector<Phone> &pInv)
{
string searchModel = "";
vector<Phone>::iterator entry;
cout << "Enter the model name/number: ";
cin >> searchModel;
entry = find(pInv.begin(), pInv.end(), Phone(searchModel, false));
for (size_t i = 0; i < pInv.size(); i++)
{
if (entry != pInv.end())
{
//ex. cout << pInv[i].getModel() << endl;
}
else
{
// ex cout << "MODEL NOT FOUND!!!" << endl;
}
}
Я хочу, чтобы пользователь мог вводить строку для поиска и находить и индексировать список информации для объекта Phone, в котором класс включает больше int и строк для его определения.
Ex. cout << getModel () + "\ t" + getBrand () + "\ t" + getCost () << endl; </p>
Дисплей: Galaxy Samsung 650