我想在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&) ' "
为什么呢?这对我来说似乎是正确的。
答案 0 :(得分:2)
您忘记将命名空间添加到函数定义中。它应该是:
bool MVQFile::chkFileExists(const QString &file) {
}