栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

286-重写C++muduo库(noncopyable.h代码)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

286-重写C++muduo库(noncopyable.h代码)

noncopyable 1、muduo库中的noncopyable.h

不写继承方式,class是默认private,struct默认是public


noncopyable不可复制的意思,我们来看看:

  • 把拷贝构造函数和赋值函数都delete掉了;
  • 使用默认的构造函数和析构函数,保护权限;(基类的构造和析构是保护的,派生类是可以访问的,外部无法访问!)
  • TCPServer的对象可以创建,调用基类的构造函数,基类的构造和析构是保护的,派生类是可以访问的,外部无法访问!
  • 基类的拷贝构造函数和赋值函数直接delete掉了,那当我们对TCPServer的对象进行拷贝构造和赋值的时候,肯定要先调用基类部分的拷贝构造和赋值,然后才是派生类的拷贝构造和赋值,但是基类的拷贝构造和赋值已经删掉了,所以说,从noncopyable继承而来的好处是直接让其派生类都不可拷贝构造和赋值。
  • 这种写法要学习啊!!!
2、重写noncopyable.h 2.1、防止头文件被重复包含
  • #pragma once --编译器级别的
  • #ifndef MUDUO_BASE_NONCOPYABLE_H --语言级别

2.2、noncopyable.h代码
#pragma once//防止头文件被重复包含

 
class noncopyable
{
public:
    noncopyable(const noncopyable&) = delete;
    noncopyable& operator=(const noncopyable&) = delete;
protected:
    noncopyable() = default;
    ~noncopyable() = default;
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928683.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号