C++中出现变量“ ”不是类型名

问题遇到的现象和发生背景

定义的类提示说不是类型

img

用代码块功能插入代码,请勿粘贴截图
class Folder;
class Message
{
private:
    std::set<Folder *> folders;
    std::string contents;
public:
    explicit Message(const std::string& = "");
    explicit Message(const std::string&,Folder&);
    ~Message();
};

inline Message::Message(const std::string& s= ""):contents(s)
{
}

inline explicit Message::Message(const std::string& s,Folder &f):contents(s),folders(f){};

Message::~Message()
{
}

class Folder
{
private:
    std::set<Message*> messgae;
public:
    Folder(/* args */);
    ~Folder();
};

Folder::Folder(/* args */)
{
}

Folder::~Folder()
{
}


我想要达到的结果

为什么Folder不是类型,class Folder不能当类型用吗

#include <set>