接着之前我们[muduo网络库]——muduo库TcpConnection类(剖析muduo网络库核心部分、设计思想),我们接下来继续看muduo库中的noncopyable。
这一类比较简单,并且我在另一篇博客里面,也有详细的介绍C++ 11以及muduo网络库中的不可拷贝(noncopyable)类代码详解!,这里就简单说一下,大家有什么不了解的可以直接移步去另一篇博客哦~
noncopyable
在写muduo库的时候,我们总会看到构造函数会继承一个noncopyable,这是什么呢?
C++ 的一个类中默认默认构造函数、析构函数、拷贝构造函数、赋值运算符、取址运算符、const取址运算符。有时候我们不希望进行某些操作,我们就需要禁止相关操作,所以在 <boost/noncopyable.hpp> 下提供了不可拷贝类的实现,让自己的类继承自 boost::noncopyable ,但是我们重构muduo库就想摆脱boost,所以自己重新写了一个。
作用: noncopyable 被继承之后,派生类对象可以正常的构造和析构,但是派生类对象无法进行拷贝构造和赋值操作。
class noncopyable
{
public:noncopyable(const noncopyable&) = delete; //将拷贝构造delete(禁用)掉noncopyable& operator=(const noncopyable&) = delete; //赋值构造delete掉
protected:noncopyable()= default;~noncopyable()= default;
};
代码地址:https://github.com/Cheeron955/mymuduo/tree/master