#include <QCoreApplication>
#include <vector>
#include <string>
#include <vector>
#include <QString>
#include <QVector>
#include <Method.h>
int main(int argc, char *argv[])
{
QVector< QString> vec;
QVector< QVector < QString> > mat;
vector<string> vect;
vector<vector<string> > matr;
vec = Method::bogus(vect);
mat = Method::bogusMa(matr);
}
#include <vector>
#include <string>
#include <vector>
#include <QString>
#include <QVector>
#include <Method.h>
using namespace::std;
QVector<QString> bogus(vector<string> & vec)
{
QVector< QString > result;
return result;
}
QVector<QVector <QString> > bogusMa(vector<vector<string> > & vec)
{
QVector< QVector<QString> > result;
return result;
}
#ifndef METHOD_H
#define METHOD_H
#include <vector>
#include <string>
#include <vector>
#include <QString>
#include <QVector>
#include <Method.h>
using namespace::std;
class Method{
public:
static QVector<QString> bogus(vector<string> & vec);
static QVector<QVector <QString> > bogusMa(vector<vector<string> > & vec);
};
#endif // METHOD_H
这很奇怪,因为当我返回包含除QString之外的其他内容的向量时,我不会收到任何错误消息。对不起,如果这听起来像一个愚蠢的问题,但我无法弄清楚为什么我会收到此错误。它是否与头文件中的include namespace语句有关?我不明白这两者是如何联系起来的。如果是这样的话,你能解释一下它为什么会给我一个错误吗?
答案 0 :(得分:1)
实现方法时,需要在
中指定类QVector<QString> bogus(vector<string> & vec)
成为
QVector<QString> Method::bogus(vector<string> & vec)
和
QVector<QVector <QString> > bogusMa(vector<vector<string> > & vec)
成为
QVector<QVector <QString> > Method::bogusMa(vector<vector<string> > & vec)
该方法的原型必须在其实现之前包含在内,因此您应该在类声明之后移动它们。