В Message.h я определяю два класса: Сообщение, Папка.И когда я пытаюсь определить функцию-член save () для Message, он говорит: объявление не совместимо с «Message :: save (& fol)».Эта ошибка возникает в части определения для save () и remove ().
Однако я проверяю, что папка & в объявлении должна совпадать с папкой & в определении.И класс Folder также определен ниже.Поэтому я удивляюсь, почему в нем указано, что папка относится к типу ошибки.
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;
...
}
...