首页 > 其他 > 详细

[Boost库] noncopyable——禁止拷贝的类

时间:2018-12-20 21:52:50      阅读:164      评论:0      收藏:0      [点我收藏+]
1、noncopyable允许程序轻松地实现一个禁止拷贝的类,在头文件<boost/noncopyable.hpp>
 
2、实现原理很简单:noncopyable的实现就是用了C++中的阻止拷贝
            参考《C++ Primer》第五版P449或者我的笔记类的设计(2)——拷贝控制(阻止拷贝
1)方式一:将拷贝构造函数和拷贝赋值运算符定义为private的
namespace noncopyable_  // protection from unintended ADL
{
  class noncopyable
  {
   protected:
      noncopyable() {}
      ~noncopyable() {}
   private:  // emphasize the following members are private
      noncopyable( const noncopyable& );
      const noncopyable& operator=( const noncopyable& );
  };
}
2)方式二:将拷贝构造函数和拷贝赋值运算符定义为删除的(=delete),采用C++11标准
class noncopyable
  {
   protected:
      noncopyable()=default;
      ~noncopyable() =default;

      noncopyable( const noncopyable& )=delete;
      const noncopyable& operator=( const noncopyable& )=delete;
  };
 

[Boost库] noncopyable——禁止拷贝的类

原文:https://www.cnblogs.com/zhizhiyu/p/10152668.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!