| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 618 人关注过本帖
标题:还是STL问题
取消只看楼主 加入收藏
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
 问题点数:0 回复次数:1 
还是STL问题
又遇到STL问题拉!请帮忙?
template <class T> class malloc_allocator
{
public:
void construct(pointer p, const value_type& x) {
new(p) value_type(x); //帮忙解释以下语法?
}
void destroy(pointer p) { p->~value_type(); }
...
};
搜索更多相关主题的帖子: STL问题 value type pointer void 
2007-01-24 19:44
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 
以下是引用tyc611在2007-1-25 1:07:00的发言:

“placement new”的用法:
> new(p) value_type(x);
在p所指向的内存处初始化一个对象,即这种形式的new本身不分配内存,而是利用已有内存。
需要注意的是,当释放这块内存时,内存上的对象的析构函数并不会被调用,所以需要自己调用它的析构函数,如:
> p->~value_type();

想了解更多,请参考C++教程。

那就是说 new(p) value_type(x); 是分配了一个p让P指向了一个value_type型的 x
// 引用上面:即这种形式的new本身不分配内存,而是利用已有内存。不大明白?

[此贴子已经被作者于2007-1-26 12:29:38编辑过]

2007-01-26 12:28
快速回复:还是STL问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016913 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved