C++11新标准的阻止拷贝方案
来源:互联网 发布:以太网数据帧格式详解 编辑:程序博客网 时间:2024/06/08 18:40
C++11新标准下,可以通过将拷贝构造函数和拷贝赋值运算符定义为删除的函数(deleted function)来阻止拷贝。
删除的函数是这样一种函数:我们虽然声明了他们,但是不能以任何形式使用他们。
通过在参数列表后面加上=delete来指出。
程序:
/***********************/ // @file nocopy.cc // @author lesliefish(yuleics@126.com) /***********************/struct NoCopy{ NoCopy() = default; //使用合成的默认构造函数 NoCopy(const NoCopy&) = delete; //阻止拷贝 NoCopy & operator = (const NoCopy&) = delete; //阻止赋值 ~NoCopy() = default; //使用合成的析构函数 //其他成员};
我们可以对任何函数指定=delete。
析构函数不能是删除的成员,如果析构函数被删除,就无法销毁此类型的对象了。
对于删除了析构函数的类型,虽然我们不能定义这种类型的变量或成员,但可以动态分配这种类型的对象。
但是,不能释放这种对象:
/***********************/ // @file NoDtor.cc // @author lesliefish(yuleics@126.com) /***********************/struct NoDtor{ NoDtor() = default; //使用合成的默认构造函数 ~NoDtor() = delete; //不能销毁NoDtor类型对象 };NoDtor nd; //错误 NoDtor的析构函数是删除的NoDtor *p = new NoDtor(); //正确 但我们不能 delete pdelete p; //错误 NoDtor的析构函数是删除的
0 0
- C++11新标准的阻止拷贝方案
- [c++]c++11 新标准
- 阻止拷贝
- 阻止拷贝
- 阻止拷贝的三种方式
- C++11新标准的新理解
- c 语言新标准
- C语言新标准C11
- C语言新标准C11
- ISO发布新的C语言——新标准C11
- C++阻止拷贝
- 好男人的新标准
- ISO C语言新标准(C11)
- c++ 11新标准
- C++11新标准解析
- C++11新标准
- C++11新标准
- C++11新标准总结
- Hbase基础知识
- 进程间通信(上)
- oracle中字符串类型数据不全
- 初次邂逅Hibernate之准备工作
- hdu 3433 A Task Process(二分答案+dp)
- C++11新标准的阻止拷贝方案
- svn/git使用小结
- 插件开发教程--(一)
- Redis 学习路线
- linux命令目录
- CSS3盒模型
- HttpURLclient
- BAPI_SALESORDER_CREATEFROMDAT2 条件 定价元素
- 在MongoVUE中发现插入的时间和实际的时间相差8小时?