C++ 拒绝识别字符串

标签 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)

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

string name = "something";

但是还是不行。任何帮助将不胜感激。

最佳答案

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

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

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

关于C++ 拒绝识别字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21812819/

相关文章:

c++ - 为什么模板只能在头文件中实现?

c++ - lambda 如何在 MSVC2017 15.9.3 with/std :c++17? 中使用静态本地错误返回值

c++ - 不匹配的删除不再是未定义的行为?

c++ - 如何将立即数 4 位值传递给 _mm256_blend_pd 的最后一个参数

python - datetime strptime - 设置格式以忽略字符串的结尾部分

javascript - Duktape中,如何将一个JS源文件内容转为字节码

c - 通过一次删除一个字符来均衡字符串中的字符数

java - 如何将 String 中的二维数组转换为 int?

c# - 如何获取给定字符的 ASCII 码?

algorithm - C# 4.0,确定字符串长度是否最有效的方法!= 0?第2部分