嘿伙计们,我刚刚开始学习C ++,我有这个代码,我必须完成,但是类标题给了我这个错误
错误:字符串:没有这样的文件或目录
#include <vector>
#include <string>
class Inventory
{
public:
Inventory ();
void Update (string item, int amount);
void ListByName ();
void ListByQuantity ();
private:
vector<string> items;
};
答案 0 :(得分:5)
您的代码应该看起来更像这样:
#include <string>
#include <vector>
class Inventory {
public:
Inventory();
void Update(const std::string& item, int amount);
void ListByName();
void ListByQuantity();
private:
std::vector<std::string> items;
};
如果#include <string>
实际上是您的include指令,那么您可能正在将该文件编译为c程序。编译器通常通过文件扩展名来确定语言。你的文件命名是什么?
答案 1 :(得分:3)
我认为您的错误与命名空间无关。
你说你得到错误:字符串:没有这样的文件或目录这意味着预编译器找不到STL字符串定义文件。如果你还包括向量并且没有问题,这是不太可能的。
您应该检查编译输出,以获取有关从哪里挑选头文件的线索。你有可能发布完整的编译输出吗?
答案 2 :(得分:2)
使用using std::string
(不推荐)或将string
替换为std::string
。
或者,如果我误解了,请使用#include <string>
代替#include "string"
。
vector
同样适用于std
名称空间。