1 c++primer 13 .4 Message-Folder类的实现
先上代码,图省事,就全写在.h里了。
还发现一个现象,函数定义如果直接写在class里,编译会报错,在下面写成inline就没问题了。
这可能涉及到一些编译时刻处理顺序的问题,我现在还在学习阶段,实在有点搞不懂这个。
//c++primer 13章练习
#pragma once
#include <string>
#include <set>
class Message;
class Folder {
public:
friend Message;
friend void swap(Message& first, Message& second);
Folder() {
}
//Folder类的 拷贝、赋值运算符、swap 和Message类基本一样,就省略了
~Folder();
void addMessage(Message& m);
void removeMessage(Message& m);
bool hasMessage(const Message& m);
const std::set<Message*>& getMessages() const;
private:
std::set<Message*> messages;
};
class Message {
public:
friend Folder;
friend void swap(Message& first, Message& second);
Message(const std::string& s = "");
Message(const Message