boost学习笔记之noncopyable
来源:互联网 发布:tensorflow应用领域 编辑:程序博客网 时间:2024/06/05 23:58
先来看一个例子:
#include <iostream>using namespace std;class test{public: test(){cout<<"test()"<<endl;}//protected: test(test&){cout<<"test(test&)"<<endl;} void operator=(const test&){cout<<"operator="<<endl;}};int main(){ test t; //test() test p(t); //test(test&) test p1 = t; //test(test&) return 0;}C++默认如果在类中没有显式地声明一个拷贝构造函数,那么,编译器将会自动生成一个默认的拷贝构造函数,该构造函数完成对象之间的位拷贝,位拷贝又称浅拷贝。也就是说默认的C++类是允许复制的。那么如何实现一个不能拷贝的类呢?只需要将上面代码的注释打开。用protected或者private修饰重写的拷贝构造函数即可。这时候test p(t);test p1 = t;2个语句就会报错
boost中noncopyable实现的原理就是如此。故我们使用boost实现一个不可拷贝的类的时候只需要继承noncopyable类即可。使用noncopyable需要包含头文件
#include <boost/noncopyable.hpp>
阅读全文
0 0
- boost学习笔记之noncopyable
- 初探boost之noncopyable学习笔记
- boost学习之noncopyable
- boost学习之noncopyable
- boost库学习之 noncopyable
- c++ boost学习之noncopyable
- Boost库学习笔记-----------实用工具之禁止复制 noncopyable
- C++学习 boost学习之-noncopyable
- boost库---noncopyable 笔记
- boost::noncopyable学习
- boost::noncopyable学习
- BOOST之noncopyable类
- 浅析boost库之noncopyable
- 浅析boost库之noncopyable
- boost库之noncopyable类
- boost::noncopyable
- boost noncopyable
- boost::noncopyable
- JHispter的安装、使用
- Kotlin中elvis的使用
- Tomcat 安全配置与性能优化
- Hibernate二级缓存
- Ubuntu16.04安装搜狗输入法
- boost学习笔记之noncopyable
- C#设计模式
- python pip 导出安装包
- 【stm32f103】TIMER基本定时功能的使用(寄存器版)
- JVM如何设置DNS缓存失效时间
- Java和Scala学习日记5
- 连通图遍历策略之广度优先搜索(C语言)
- Binary Tree Maximum Path Sum ---lintcode
- JDBC连接MySQL数据库——案例