【问题标题】:C++ refuses to recognize stringsC++ 拒绝识别字符串
【发布时间】:2014-02-16 14:57:09
【问题描述】:

我有这个结构:

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);

弹出如下错误信息:No instance of constructor "FileData::FileData" 与参数列表匹配;参数类型有:(std::string, std::string, int, std::string)

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

string name = "something";

但它仍然没有工作。任何帮助将不胜感激。

【问题讨论】:

    标签: c++ string


    【解决方案1】:
    FileData (string name, int path, string size, string hash)
    

    注意int path,应该是std::string path

    如果这是设计的,您不能像现在那样为 path 参数传递 std::string

    【讨论】:

    • 谢谢你的好先生,我想今天的代码已经足够了,我尴尬地退休了
    猜你喜欢
    • 2016-07-25
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多