vector — ошибка с методом add в заголовочном файле в переполнении стека

Эй, у меня есть вектор в заголовочном файле (Inventory.h) вместе с файлом cpp (Inventory.cpp) для заголовочного файла (Inventory.h). Я не могу понять, как использовать функции push и pop без создания отдельной функции add, которая выглядит следующим образом.

vector<string>s Inventory ::add(string item)
{
inventory.push_back(item);
return item;
}

Но это показывает мне ошибку:

Error   1   error C2511: 'void Inventory::add(std::string)' : overloaded member function not found in 'Inventory'   c:\users\conor\documents\college\dkit - year 2 - repeat\dkit - year 2 - semester 1 - repeat\games programming\maroonedca2\maroonedca2\inventory.cpp 19  1   MaroonedCA2

Вот мой Inventory.h

#ifndef INVENTORY_H
#define INVENTORY_Hclass Inventory
{
public:
//Constructor
Inventory();

//Methods.
string add();
void displayInventory();
void showInventory();
private:
//Data members
};#endif //INVENTORY_H

И мой Inventory.cpp.

#include "Inventory.h"#include <iostream>
#include <vector>   //  To enable the use of the vector class.
#include <string>using namespace std;
vector<string> inventory;
vector<string>::iterator myIterator;
vector<string>::const_iterator iter;Inventory::Inventory()
{

}

vector<string>s Inventory ::add(string item)
{
inventory.push_back(item);
return item;
}

void Inventory:: showInventory()
{
char input[80];
cin >> input;
char inventoryRequest[] = "i";
int invent = strcmp (input,inventoryRequest);
//compare the player input to inventoryRequest (i) to see if they want to look at inventory.
if(invent == 0)
{
displayInventory();
}}
void Inventory:: displayInventory()
{
//vector<string> inventory;
cout<< "You have " << inventory.size() << " items.\n";
cout << "\n******Inventory******";
cout<< "\nYour items:\n";
for (int i= 0; i< inventory.size(); ++i)
cout<< inventory[i] << endl;
}

Если бы я мог получить помощь с этой функцией или решение использовать push / pop в моем main, в то время как в заголовочном файле это было бы оценено. Заранее спасибо.

Редактировать: Новые ошибки.

Error   1   error C2146: syntax error : missing ';' before identifier 'add' c:\users\conor\documents\college\dkit - year 2 - repeat\dkit - year 2 - semester 1 - repeat\games programming\maroonedca2\maroonedca2\inventory.h   17  1   MaroonedCA2
Error   2   error C4430: missing type specifier - int assumed. Note: C++ does not support default-int   c:\users\conor\documents\college\dkit - year 2 - repeat\dkit - year 2 - semester 1 - repeat\games programming\maroonedca2\maroonedca2\inventory.h   17  1   MaroonedCA2
Error   3   error C2061: syntax error : identifier 'string' c:\users\conor\documents\college\dkit - year 2 - repeat\dkit - year 2 - semester 1 - repeat\games programming\maroonedca2\maroonedca2\inventory.h   17  1   MaroonedCA2
Error   5   error C2146: syntax error : missing ';' before identifier 'add' c:\users\conor\documents\college\dkit - year 2 - repeat\dkit - year 2 - semester 1 - repeat\games programming\maroonedca2\maroonedca2\inventory.h   17  1   MaroonedCA2
Error   6   error C4430: missing type specifier - int assumed. Note: C++ does not support default-int   c:\users\conor\documents\college\dkit - year 2 - repeat\dkit - year 2 - semester 1 - repeat\games programming\maroonedca2\maroonedca2\inventory.h   17  1   MaroonedCA2
Error   7   error C2061: syntax error : identifier 'string' c:\users\conor\documents\college\dkit - year 2 - repeat\dkit - year 2 - semester 1 - repeat\games programming\maroonedca2\maroonedca2\inventory.h   17  1   MaroonedCA2

0

Решение

Вы должны убедиться, что ваш .час а также .CPP методы соответствуют

.час

string add(string item);

.CPP

string Inventory::add(string item)

Там написано, что перегруженная функция не найдена, потому что вы пытаетесь вызвать функцию, которую вы не определили в своем заголовке.

4

Другие решения

Кажется, декларация add() и для его реализации используют разные подписи:

class Inventory
{
public:
// ...
string add();
};

vector<string>s Inventory ::add(string item)
{
// ...
}

где дополнительные «после» vector<string> в любом случае кажется совершенно неуместным.

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector