In Message.h, I define two classes: Message, Folder. And when I try to define a member function save() for Message, it says :Declaration is not compatible with “Message::save(& fol)”. This error happens in the definition part for save() and remove().
However, I check that Folder& in the declaration should be the same as Folder& in the definition. And the Folder class is defined below as well. Thus I wonder why it says Folder is an error-type.
class Message { friend class Folder; public: ... //save and remove message from given folder void save(Folder& fol); void remove(Folder& fol); ... private: std::string contents; std::set<Folder*> folders; } void Message::save(Folder& fol) { folders.insert(&fol); fol.addMsg(*this); } void Message::remove(Folder& fol) { folders.erase(&fol); fol.remMsg(*this); } ... class Folder{ friend class Message; ... } ...