Как заставить мою функцию stati c перестать выдавать странную ошибку (изображение прилагается) - PullRequest
0 голосов
/ 08 мая 2020

error message I don't know how to fix

Итак, в основном мне нужно создать функцию stati c, которая возвращает элемент выбора из карты на основе ввода. (Должен быть stati c, поскольку он должен быть доступен без объекта).

class Keys { //only one instance will be created, same for all instances
protected: 
    int ID ;
    string itemName ;
    static map<string, int> mapNameToItem;
    static map<int, string> mapItemToName;
public:
    Keys(vector<string>names, vector<int> ids);
    static int NameToItem(string inputted_name) ;
    static string ItemToName(int inputted_int) ; };

Вот его реализация:

Keys::Keys(vector<string>names, vector<int> ids)
{
    for(vector<string>::iterator it = begin(names); it != end(names); it = next(it)) 
    {
        for(vector<int>::iterator itz = begin(ids); itz != end(ids); itz = next(itz)) 
        {
            mapNameToItem.insert(pair<string,int>(*it,*itz));
            mapItemToName.insert(pair<int, string>(*itz,*it));
        }
    }
}

int Keys::NameToItem(string inputted_name) 
{
    return mapNameToItem[inputted_name] ;
}

string Keys::ItemToName(int inputted_int) 
{
    return mapItemToName[inputted_int] ;
}

Есть ли у кого-нибудь исправление (кроме включения stati c в его реализацию, поскольку это не работает)? Спасибо.

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