C++ 导致错误引用未定义的QString方法 #包括 #包括 #包括 #包括 #包括 #包括 #包括 int main(int argc,char*argv[]) { QVectorvec; QVectormat; 向量向量; 向量矩阵; vec=方法::伪造(vect); mat=方法::bogusMa(matr); } #包括 #包括 #包括 #包括 #包括 #包括 使用namespace::std; QVector伪码(vector和vec) { QVector结果; 返回结果; } QVector bogusMa(矢量和矢量) { QVector结果; 返回结果; } #ifndef方法 #定义方法 #包括 #包括 #包括 #包括 #包括 #包括 使用namespace::std; 类方法{ 公众: 静态QVector伪码(vector&vec); 静态QVector-bogusMa(vector&vec); }; #endif//方法

C++ 导致错误引用未定义的QString方法 #包括 #包括 #包括 #包括 #包括 #包括 #包括 int main(int argc,char*argv[]) { QVectorvec; QVectormat; 向量向量; 向量矩阵; vec=方法::伪造(vect); mat=方法::bogusMa(matr); } #包括 #包括 #包括 #包括 #包括 #包括 使用namespace::std; QVector伪码(vector和vec) { QVector结果; 返回结果; } QVector bogusMa(矢量和矢量) { QVector结果; 返回结果; } #ifndef方法 #定义方法 #包括 #包括 #包括 #包括 #包括 #包括 使用namespace::std; 类方法{ 公众: 静态QVector伪码(vector&vec); 静态QVector-bogusMa(vector&vec); }; #endif//方法,c++,compiler-errors,C++,Compiler Errors,这很奇怪,因为当我返回包含QString以外内容的向量时,没有收到任何错误消息。抱歉,如果这听起来像一个愚蠢的问题,但我不能确切地找出我为什么会出现这个错误。它是否与头文件中的include namespace语句有关?我不知道这两者之间有什么联系。如果是这样的话,您能解释一下为什么它会给我一个错误吗?当实现一个方法时,您需要指定其中的类 #include <QCoreApplication> #include <vector> #include <string&g

这很奇怪,因为当我返回包含QString以外内容的向量时,没有收到任何错误消息。抱歉,如果这听起来像一个愚蠢的问题,但我不能确切地找出我为什么会出现这个错误。它是否与头文件中的include namespace语句有关?我不知道这两者之间有什么联系。如果是这样的话,您能解释一下为什么它会给我一个错误吗?

当实现一个方法时,您需要指定其中的类

#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
QVector伪码(vector&vec)
变成

QVector<QString> bogus(vector<string> & vec)
QVector<QVector <QString> > bogusMa(vector<vector<string> > & vec)
QVector方法::伪造(vector&vec)

QVector-bogusMa(vector&vec)
变成

QVector<QString> bogus(vector<string> & vec)
QVector<QVector <QString> > bogusMa(vector<vector<string> > & vec)
QVector方法::bogusMa(vector和vec)

方法的原型也必须在其实现之前包含,因此您应该在类声明之后移动这些原型。

在我们帮助您之前,
此错误!=NULL
必须为
TRUE
。只是没有引用您所说的“此错误”的意思。如果它们不在同一个文件中(我有一个头和一个cpp文件),该怎么办?在这种情况下,您需要在cpp文件和主文件中包含头(cpp中仍然需要“方法::”)