class noncopyable
{
public:
noncopyable(const noncopyable&) = delete;
void operator=(const noncopyable&) = delete;
protected:
noncopyable() = default;
~noncopyable() = default;
};
class copyable
{
protected:
copyable() = default;
~copyable() = default;
};
在muduo的代码中,绝大多数的类都继承自noncopyable,按照作者的说法,就是值语义的类是可以拷贝的,具有对象语义的则不允许拷贝。继承noncopyable的类都不允许拷贝,通过delete禁止了拷贝构造函数和赋值操作符。而且通过将noncopyable的构造和析构函数实现为protected,禁止创建noncopyable对象。
看来以后在自己的代码中,也要多使用该类,向大神看齐