编译多个文件 C++,不命名类型

compile multiple files c++, doesnt name a type

我在使用代码块编译多个文件时遇到问题。我的问题是编译器无法识别我创建的 class 类型。我收到错误未命名类型。我在所有头文件中都添加了#ifndef、#define。我的文件是:

forum.h

#include <list>
#include "thread.h"
class Forum
{
private:
    std::list<Forum*> forums;
    std::list<Thread*> themata;
}

thread.h

#include <list>
#include "forum.h"
#include "post.h"
class Thread
{
private:
    Forum* forum; //gia tin allagi thesis otan ginei stick
    int id;
    std::list <Post*> lista;
}

post.h

#include "system.h"
class Post
{
private:
    System* system;
}

我能做些什么?

你有一个循环 header 依赖。使用前向声明来打破它。例如,在 forum.h 中,向前声明 Thread class 而不是像这样包含它的 header:

#include <list>

class Thread;

class Forum
{
private:
    std::list<Forum*> forums;
    std::list<Thread*> themata;
};

forum.cpp 中包含 header。