繁体   English   中英

Qt的; 没有匹配的通话功能

[英]Qt; no matching function for call

在Qt项目中遇到此错误;

C:\Users\Seb\Desktop\SDIcw2\shipHandler.cpp:20: error: no matching function for call to 'std::basic_ifstream<char>::open(QString&)'
     infile.open(qstr);
                     ^

发生在这个构造函数中;

SDI::shipHandler::shipHandler(std::string fileName)
{
    QString qstr = QString::fromStdString(fileName.c_str());
    std::string line;
    std::ifstream infile;
    infile.open(qstr);
    while(!infile.eof()) 
    {
        getline(infile,line); 
        shipHandler::lineParse(line);
    }
    infile.close();
}

我正在通过另一个线程创建该类的初始化;

SDI::shipHandler sh("ships.txt");

只是解决了Qt上的一个问题而带来了另一个问题。 真的为此感到烦恼,我讨厌在这里发布很多内容。 只是尝试传递文件名以打开文件,但在Visual Studio中工作,但移至此处以添加GUI。 非常感谢您的帮助

转换为QString只会给您带来问题。 如果直接使用fileName则应该解决编译器错误:

SDI::shipHandler::shipHandler(std::string fileName)
{
    std::string line;
    std::ifstream infile;
    infile.open(fileName);
    ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM