向QFile添加方法 - 编译错误"未定义的引用..."

时间:2015-02-18 15:49:20

标签: qt

我想在QFile中添加一个名为chkFileExists()的方法。我有以下用于扩展QFile的代码文件:

mvqfile.h

#ifndef MVQFILE_H
#define MVQFILE_H

#include <QFile>

class MVQFile : public QFile
{
    Q_OBJECT
public:
    explicit MVQFile(QObject *parent = 0);
    bool chkFileExists(const QString &file);
};

#endif // MVQFILE_H

mvqfile.cpp

#include "mvqfile.h"
#include <QFileInfo>

MVQFile::MVQFile(QObject *parent) :
    QFile(parent)
{
}

bool chkFileExists(const QString &file)
{
    QFile ff(file);
    QFileInfo fileInfo(ff);
    return (fileInfo.exists() && fileInfo.isFile());
}

然后在我的主要代码中我有:

#include "mvqfile.h"


MVQFile file;
file.setFileName("/home/path/filename.csv");

if (file.chkFileExists(file.fileName()))
{
  qDebug() << file.fileName() << " exists";
} else {
  qDebug() << file.fileName() << " does not exist";
}

编译时我收到错误:

"undefined reference to `MVQFile :: chkFileExists(QString const&) ' "

为什么呢?这对我来说似乎是正确的。

1 个答案:

答案 0 :(得分:2)

您忘记将命名空间添加到函数定义中。它应该是:

bool MVQFile::chkFileExists(const QString &file) {

}