C++
litoujkl
这个作者很懒,什么都没留下…
展开
-
STL----vector的内存分配与释放
原文:http://www.cnblogs.com/biyeymyhjob/archive/2012/09/12/2674004.html案例:#include #include #include using namespace std;class Point{public: Point() { cout << "co原创 2015-08-06 14:11:41 · 1670 阅读 · 0 评论 -
C++内存管理
内存分配方式有3种:(1)从静态存储区分配(2)在栈上分配(3)从堆上分配malloc/free(库函数) vs new/delete(运算符)new直接返回目标类型的指针,不需要显式转换,而malloc则返回void *,必须首先显式地进行目标类型转换new的3种使用方式(1)plain new:在失败后抛出标准异常std::bad_alloc(2)原创 2015-09-09 20:35:02 · 268 阅读 · 0 评论 -
智能指针
1、auto_ptr的简单实现auto_ptr的性质:会转让所有权(当拷贝构造或者复制赋值发生时)templateclass auto_ptr { private: T *m_ptr; T * release() { T *value = m_ptr; m_ptr = 0; return value; } public: auto_ptr(T *原创 2015-08-24 15:05:57 · 317 阅读 · 0 评论 -
dynamic_cast<>运算符
(1)dynamic_cast如果转换成功则返回目标类型的指针,否则返回NULL;当目标类型是某种类型的引用时,如果成功则返回目标类型的引用,否则抛出std::bad_cast异常,因为不存在NULL引用。(2)dynamic_cast能够判断源对象与目标对象之间是否具有is-a关系,这需要在运行时遍历继承树,并且其开销会随着源对象类型与目标类型距离(层次)的增大而增大。原创 2015-09-09 20:54:04 · 465 阅读 · 0 评论