
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 · 1719 阅读 · 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 · 286 阅读 · 0 评论 -
智能指针
1、auto_ptr的简单实现 auto_ptr的性质:会转让所有权(当拷贝构造或者复制赋值发生时) template class 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 · 347 阅读 · 0 评论 -
dynamic_cast<>运算符
(1)dynamic_cast 如果转换成功则返回目标类型的指针,否则返回NULL;当目标类型是某种类型的引用时, 如果成功则返回目标类型的引用,否则抛出std::bad_cast异常,因为不存在NULL引用。 (2)dynamic_cast能够判断 源对象与目标对象之间是否具有is-a关系,这需要在运行时遍历继承树,并且其开销会随着源对象类型与目标类型距离 (层次)的增大而增大。原创 2015-09-09 20:54:04 · 509 阅读 · 0 评论