Qt 库如何解决 QStringList
和 QString
类的前向声明问题。这两个类都具有操作外部的能力,如果你调用 QString::split()
它将返回 QStringList
对象,而在 QStringList
中我有operator << 用于添加 QString
对象...
当我尝试让自己的类(class)做同样的工作时,我遇到了错误
前向声明...
我的标题是: 字符串列表.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&,stringList*) 中,我有部分代码 stringList::insert,在那一行我有错误:
monString.cpp|142|error: invalid use of incomplete type 'class stringList'
我该如何解决这个问题,Qt 是如何解决这个问题的...
最佳答案
monString.cpp 需要#include "stringList.h"
。
如果你试图让两个头文件相互包含,你只会遇到循环依赖的麻烦。但在源文件中一定要包含您需要的所有类定义。
关于c++ - 字符串列表和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34300404/