У меня есть класс с вектором предметов, которые я добавляю в инвентарь игрока. Когда я компилирую свой проект, я получаю ошибку, связанную с моим вектором, но не знаю, что может быть причиной этой ошибки. Нужно ли использовать строковые переменные вместо строки?
Player. cpp
#include <iostream>
#include <vector>
#include "player.h"
using namespace std;
void Player::AddItem(string item)
{
items.push_back(item);
}
void Player::UseItem(string item)
{
if(HasItem(item))
{
items.pop_back();
}
}
Player.h
#ifndef PLAYER_H
#define PLAYER_H
#include <iostream>
#include <vector>
class Player
{
private:
int row;
int col;
int moves;
std::vector<std::string> items();
public:
Player();
int GetRow();
int GetCol();
void SetPosition(int row, int col);
void AddItem(std::string item);
bool HasItem(std::string item);
void UseItem(std::string item);
int GetMoveCount();
void IncrementMoves();
};
#endif
Полученная ошибка:
player.cpp: In member function ‘void Player::AddItem(std::__cxx11::string)’:
player.cpp:49:2: error: invalid use of member function ‘std::vector<std::__cxx11::basic_string<char> > Player::items()’ (did you forget the ‘()’ ?)
items.push_back(item);
^~~~~
player.cpp: In member function ‘void Player::UseItem(std::__cxx11::string)’:
player.cpp:72:3: error: invalid use of member function ‘std::vector<std::__cxx11::basic_string<char> > Player::items()’ (did you forget the ‘()’ ?)
items.pop_back();
^~~~~
make: *** [<builtin>: player.o] Error 1
Что может быть причиной этой ошибки?