C ++拒绝识别字符串

时间:2014-02-16 14:57:09

标签: c++ string

我有这个结构:

struct FileData
{
    string fileName;
    int filePath;
    string fileSize;
    string fileHash;
    public:
    FileData (string name, int path, string size, string hash) :
    fileName(name), filePath(path),fileSize(size),fileHash(hash) {}
};

当我尝试像这样初始化它时:

string name = dir[i].substr(delimiter+1);
string path = dir[i].substr(0, delimiter);
int size = FileSizeInBytes(dir[i]);
string hash = "";
FileData *sample = new FileData (name,path,size,hash);

弹出以下错误消息:没有构造函数“FileData :: FileData”的实例与参数列表匹配;参数类型是:(std :: string,std :: string,int,std :: string)

备注:我已经包含了字符串标题(由于某种原因,单词字符串,由<>包围,不会出现在问题中),我有“使用命名空间std;”在代码的顶部。我尝试删除它并在每个字符串之前手动添加std ::仍然无法正常工作。我在创建结构对象之前尝试分配给变量的值也是完全有效的字符串。我也尝试过写作

string name = "something";

但它仍然无效。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

FileData (string name, int path, string size, string hash)

注意int path,应为std::string path

如果这是设计,你不能像std::string那样传递path,就像你现在那样