【c++】模拟实现boost库下的scoped_array
2015-07-17 14:38
375 查看
//模拟实现boost库下的scoped_array #include <iostream> #include <assert.h> using namespace std; template <class T> class scoped_array { private: T * px; scoped_array(scoped_array const &); scoped_array& operator=(scoped_array const &); void operator==(scoped_array const &)const; void operator!=(scoped_array const &)const; public: scoped_array(T * p = 0) :px(p) {} ~scoped_array() { delete[] px; } void reset(T * p = 0) { assert(p == 0 || p != px); scoped_array<T>(p).swap(*this); } T& operator[](int i)const { assert(px != 0); assert(i >= 0); return px[i]; } T* get()const { return px; } void swap(scoped_array & b) { T *tmp = px; px = b.px; b.px = tmp; } }; int main() { int *arr = new int[100]; arr[0] = 50; scoped_array<int> ptr(arr); cout << ptr[0] << endl; return 0; }
相关文章推荐
- c++课程实训-银行系统
- C/C++程序设计05(泛型编程、容器、STL)
- C++课程实训——银行系统
- c++课程实训 银行储蓄系统
- <2015年大一C++实训项目>银行储蓄系统
- C++11的一些功能
- 【STL】C++使用STL处理替换字符串操作。
- 黑马程序员-C语言基础知识-流程控制
- C++ 全局对象构造和析构
- ##..C++程序设计项目实训——银行储蓄系统
- 转:关于C++ const 的全面总结
- VC++中MCI播放音频文件 【转】
- firefox浏览器调用C++编写的ocx的方法
- NULL和nullptr和nil和Nil还有NSNull
- C++中的delete浅析
- 用c语言编写身份证号码是否合法
- C++面试知识点总结
- Manacher算法-求字符串中最长回文串
- AC自动机应用 多模式匹配 多个单词在文章中出现的次数-C语言实现
- 【c++】模拟实现boost库里的scoped_ptr