![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
wilsonany
这个作者很懒,什么都没留下…
展开
-
placement new释疑
<br />placement new 是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。<br />它的原型如下: <br />void *operator new( size_t, void *p ) throw() { return p; }<br /> <br />首先我们区分下几个容易混淆的关键词:new、operator new、placement new <br /转载 2011-01-26 12:19:00 · 254 阅读 · 0 评论 -
深入C++的new
“new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:class A{转载 2011-06-09 11:12:00 · 179 阅读 · 0 评论 -
简易分析myicq的内存池模型
myicq 1.0中实现了一个内存池的模型,可以自动分配和回收对象内存。下面看下其实现方式。首先内存池使用了双向链表来链接的,链表的实现也就是linux中常见的list_head形式,不过是其自己实现的。有点不解的是,既然用list_head,如果是在linux实现,可以自己调用linux里内建好的list_head,而且还是C的呢,而不是myicq里自己实现的还是类的形式的。又如果如果说转载 2011-06-17 22:34:00 · 397 阅读 · 0 评论