钦州 网站建设,浙江天奥建设集团网站,穿衣打扮 wordpress,如何寻找做网站的客户在研读muduo库源码时#xff0c;可以发现其中的很多类都是私有继承自noncopyable的
那么这是一个什么类呢#xff1f;为什么要继承这个类#xff1f;
其实从名字也可以得知 noncopyable——不可复制
让我们看一下源码
#ifndef MUDUO_BASE_NONCOPYABLE_H
#define MUDUO_B…在研读muduo库源码时可以发现其中的很多类都是私有继承自noncopyable的
那么这是一个什么类呢为什么要继承这个类
其实从名字也可以得知 noncopyable——不可复制
让我们看一下源码
#ifndef MUDUO_BASE_NONCOPYABLE_H
#define MUDUO_BASE_NONCOPYABLE_Hnamespace muduo
{class noncopyable
{public:noncopyable(const noncopyable) delete;void operator(const noncopyable) delete;protected:noncopyable() default;~noncopyable() default;
};} // namespace muduo#endif // MUDUO_BASE_NONCOPYABLE_H其将拷贝构造和拷贝运算符禁止使用了然后析构和构造函数保持默认
即 继承自 noncopyable 之后派生类对象可以正常地构造和析构 但是派生类对象无法进行拷贝构造和赋值操作 继承自这个类的子类都直接拥有了禁止拷贝的功能而不用在自身的类中再一个个单独禁用拷贝。可以说 这是一个极为巧妙的设计。