c++ - 字符串列表和字符串

标签 c++ qt declaration forward-declaration qstring

Qt 库如何解决 QStringListQString 类的前向声明问题。这两个类都具有操作外部的能力,如果你调用 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/

相关文章:

c++ - QRegExp 非捕获括号

c++ - 只有一列适合其内容大小,而其他列则拉伸(stretch)

"long long [(,)]"声明可以在 C 中以某种方式工作吗?

c - 当有多个间接级别时如何解释 volatile

c++ - 将 json 代码格式化为 std::string

c++按类型大小而不是类型声明变量

c++ - 将预制的 OpenCV 安装移动到另一台 Linux 计算机

c++ - BOOST uBLAS 矩阵乘积极慢

c++ - 如何使用Ct Qt解析此JSON?

r - R 中参数长度为零的声明