C++ 编写一个不可复制的类

flyfish

Effective C++:条款06
若不想使用编译器自动生成的函数,就该明确拒绝 .
Explicitly disallow the use of complier-generated functions you do not want.

老式C++的写法

class noncopyable
{
protected:noncopyable() {}~noncopyable() {}
private:noncopyable( const noncopyable& );noncopyable& operator=( const noncopyable& );
};

C++11的写法

class noncopyable
{
protected:constexpr noncopyable() = default;~noncopyable() = default;noncopyable( const noncopyable& ) = delete;noncopyable& operator=( const noncopyable& ) = delete;
};

Boost的实现
Boost不将两种方法结合,还防止无意识的ADL(protection from unintended ADL)
ADL(Argument Dependent Lookup)

 namespace boost {namespace noncopyable_ {class noncopyable{};}typedef noncopyable_::noncopyable noncopyable;} 

C++ 编写一个不可复制的类相关推荐

  1. 编写一个基本账户类。成员变量包括:账号、储户姓名和存款余额,成员函数包括: 存款和取款。编写一个测试程序进行测试。

    本文为博主原创文章,未经博主允许不得转载. 版权为陈博超所有,第一次于2020年11月22日发表于BLOG上 本BLOG上原创文章未经本人许可,不得用于商业用途.转载请经允许后注明出处,否则保留追究法 ...

  2. 编写一个矩形rectangle 类,有数据成员长len 和宽wid,构造函数rectangle (int,int),和友元函数.

    编写一个矩形rectangle 类,有数据成员长len 和宽wid,构造函数rectangle (int,int),和友元函数float area(rectangle T)和float cret(re ...

  3. Java基础编程题目——编写一个三角形的类

    编写一个代表三角形的类.其中3条边为三角形的属性,并封装有求三角形的面积和周长的方法.分别针对3条边为3.4.5和7.8.9的两个三角形进行测试. public class Triangle {pub ...

  4. 编写一个公司员工类(Java)

    class Gsyg{String num;String name;int salary;String department;public Gsyg(String num){this.num=num; ...

  5. c语言实现4x4随机字母,求用C++编写一个4x4矩阵运算类(元素float),实现转置和相乘,具体见补充,在线等!谢谢啦~...

    满意答案 onem827047 2013.07.03 采纳率:56%    等级:13 已帮助:12013人 刚写好 的 #include using namespace std; class CMy ...

  6. 面向对象之编写一个完整的类

    package com.work.cast;public class People {public static void main(String[] args) {People1 p=new Peo ...

  7. java设计一个顺序表类的成员函数_顺序表代码讲解以及实现

    用C语言编写一个有关顺序表的程序代码 创建一个顺序表,其数据元素类型为整型: 在该顺序表中插入数据(#include #include #define MaxSize 50 typedef char ...

  8. java编写一个表示二维平面_JAVA习题集2精品名师资料.doc

    导读:java习题集2.doc,习题二一.判断题 1.一个类定义了一个或多个构造方法,则 Java 不提供默认的构造方法.( ) 2.如果定义的类中没有给出构造方法,系统也不会提供构造方法.( ) 3 ...

  9. java题编写一个方法_Java方法面向对象习题

    1.编写一个无参方法,输出Hello. package Dongruan; public class ktlx1 { public static void main(String[] args) { ...

最新文章

  1. jsp中如何判断el表达式中的BigDecimal==0
  2. linux df命令参数详解
  3. LinQ中Skip()方法和Take()方法的使用
  4. 5.2 大间距分类器-机器学习笔记-斯坦福吴恩达教授
  5. 递归锁、信号量、GIL锁、基于多线程的socket通信和进程池线程池
  6. C++之用std::nothrow分配内存失败不抛异常
  7. origin tangent插件_如何用origin绘制切线
  8. [课后作业] 第032讲:异常处理:你不可能总是对的
  9. 2018.4.3 做lab0
  10. Java 实现批量静默打印PDF文件
  11. n2n(Pear-to-pear) 内网穿透
  12. 按颜色分类:蓝紫色系(Purple Blue)
  13. 【Codeforces】2015-2016 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2015) A Adjoin the Netwo
  14. js/vue:video 视频播放器
  15. Shopify独立站注册建站教程,Shopify独立站怎么做
  16. SSL-ZYC 旅行
  17. springboot启动错误--springboot At least one base package must be specified
  18. ohmyzsh用在mysql_oh-my-zsh git 命令缩写 以及macbook使用感受
  19. 大数据和人工智能未来发展趋势
  20. Java之ut,mock与jacoco

热门文章

  1. 你对世界的了解,也许连大猩猩都比不上
  2. C#正则表达式 解析html+table tr td 内容
  3. UML是什么意思?类图又是什么?
  4. 商业大数据线下回归实验:北京二手房房价实验步骤(上)
  5. Java篇 之 序列化与反序列化
  6. 安卓系统虚拟机原理 -- 初试DVM创建
  7. 微信小程序解决页面数据处理多时页面卡顿的问题
  8. 两轮差速底盘的运动模型分析:运动控制与里程计解算
  9. win7家庭普通版如何打开组策略
  10. SLAM评测工具EVO常用功能介绍【正在刷夜的李哈哈】