[英]error with add method in the header file in C++
嘿,我在頭文件(Inventory.h)中有一個矢量,以及頭文件(Inventory.h)的cpp(Inventory.cpp)文件。 我無法弄清楚如何使用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
這是我的清單。
#ifndef INVENTORY_H
#define INVENTORY_H
class 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的解決方案方面獲得幫助,將不勝感激。 提前致謝。
編輯:新錯誤。
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
您必須確保.h和.cpp方法匹配
。H
string add(string item);
.cpp
string Inventory::add(string item)
它說找不到重載函數,因為您正在嘗試調用未在標頭中定義的函數。
似乎add()
的聲明及其實現使用了不同的簽名:
class Inventory
{
public:
// ...
string add();
};
vector<string>s Inventory ::add(string item)
{
// ...
}
無論如何, vector<string>
之后的多余“ s”似乎完全不合適。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.