C++实现不可被复制的类
来源:互联网 发布:同性电影推荐知乎 编辑:程序博客网 时间:2024/04/26 22:33
C++语言编程中,类的拷贝主要是通过拷贝构造函数和赋值函数来进行,再者就是为拷贝专门实现的成员方法。
由于拷贝构造函数和赋值函数在用户为提供的情况下是由C++编译器自动生成的,而且是public成员,因此默认的C++类都有拷贝功能。
一个默认的C++类所拥有的成员函数:
class Empty{}; //空类EmptyEmpty(); //默认构造函数Empty(const Empty &);//默认拷贝构造~Empty(); //默认析构函数Empty & operator=(const Empty &)//默认赋值运算符Empty *operator&();//取地址运算符const Empty *operator &() const; //取地址运算符const
程序员有时候需要给文件加上权限,让这些机密文件不能被随意拷贝,这时候就需要用C++实现不可被拷贝的类。
若让一个C++类不能被拷贝,可显式地声明类的拷贝构造函数和赋值函数为私有函数,从而达到该类不可被拷贝的目的。
下面简单地提供一个基类,任何需要提供不可被拷贝功能的C++类只需从此类派生即可。
Noncopyable类示例:
//通过私有化拷贝构造函数和赋值函数而达到对象不可被拷贝的目的//任何需提供不能被拷贝功能的类可以直接从Noncopyable派生即可class Noncopyable{protected: Noncopyable(); ~Noncopyable();private: Noncopyable(const Noncopyable&); Noncopyable& operator=(const Noncopyable&);};
0 0
- C++实现不可被复制的类
- C++ 编写一个不可复制的类
- 不可复制的硅谷
- c++IO对象不可复制
- c++IO对象不可复制
- LinuxC/C++编程基础(19) 不可复制类的原理及实现
- C++实现不可被拷贝的类
- C++实现不可被拷贝的类
- [Web前端]CSS实现“不可选择,不可复制”面临的问题
- C++IO对象不可复制或赋值
- C++IO对象不可复制或赋值
- C++IO对象不可复制或赋值
- C++IO对象不可复制或赋值
- c++IO对象不可复制或赋值
- [C++] String类的复制控制的实现
- 如何用c实现可执行文件的复制
- C#.NET实现文件夹的复制
- C#.NET实现文件夹的复制
- 【git】 安装与使用
- day_03文件操作模式
- 添物不花钱学计算机及编程(预备篇) - 计算机网络
- 使用Spring处理一个RESTful请求
- Android中解析JSON总结
- C++实现不可被复制的类
- 46、JavaScript的运动----完美运动框架的实现----注意运动停止的判断的技巧
- vim程序编辑器
- win32版QQ隐藏功能,气泡消息显示详细时间
- Android刮彩票效果
- 10+资深软件架构师谈计算机专业——填高考志愿必读
- Android开发-layout布局相关属性总结
- GDB arm-linux交叉编译移植和使用方法(特别是对于正在运行的程序或者段错误的程序进行分析)
- LeetCode第54题之Spiral Matrix