E0289: Ни один экземпляр конструктора "Phone :: Phone" не соответствует списку аргументов? - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь перебрать вектор пользовательского класса «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

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