stringList和string

时间:2015-12-15 22:12:30

标签: c++ qt declaration forward-declaration qstring

Qt库如何解决QStringListQString类的前向声明问题。两个类都有能力使用外部操作,如果你调用QString::split()它将返回QStringList个对象,而在QStringList我有操作符<<添加QString个对象...... 当我试图让我自己的班级做同样的工作时,我有错误 前瞻性宣言......

我的标题是: stringList.h:

#ifndef STRINGLIST_H
#define STRINGLIST_H
#include "monString.h"
class stringList
{
    public:
        stringList();
        virtual ~stringList();
        void insert(monString newString);
        void prikazi();
        int size();
        monString & operator[](int offset);
    protected:
    private:
        stringList *slNext;
        monString *szString;
        int iOffset;
        static int iStringSize;
        stringList *lastNext;
};
#endif // STRINGLIST_H

和monString.h:

#ifndef MONSTRING_H
#define MONSTRING_H
#include <iostream>

using namespace std;
class stringList;

class monString{
private:
    char *dString;
    int dStringLongeur;
public:
    monString();
    monString(char* newString);
    ~monString();
    operator char*();
    int sizeOfString()const;
    monString(const monString &rhs);
    char operator[](int offset)const;
    char & operator[](int offset);
    monString &operator=(const monString &rhs);
    monString operator=(const char * const newString);
    monString operator+(monString &rhs);
    void operator+=(monString &rhs);
    void splitString(char);
    void split(const char &ch,stringList*);
    void isprazni();
};

在函数split(const char&amp;,stringList *)中,我有一部分代码stringList :: insert,在那一行我有错误:

monString.cpp|142|error: invalid use of incomplete type 'class stringList'

我如何解决这个问题,以及Qt如何解决这个问题......

1 个答案:

答案 0 :(得分:1)

monString.cpp需要#include "stringList.h"

如果您尝试让两个头文件相互包含,则只会遇到循环依赖性问题。但是在源文件中一定要包含所需的所有类定义。