求助:关于new的一个面试题

skyguide 2008-10-13 12:03:25
C++中的new操作符通常完成两个工作, 分配内存及其调用相应的构造函数初始化
请问:
1) 如何让new操作符不分配内存, 只调用构造函数?
2) 这样的用法有什么用?

知道的高人指点一下,谢谢
...全文
91 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
waydream 2008-10-16
  • 打赏
  • 举报
回复
重载new
nk_ysg 2008-10-13
  • 打赏
  • 举报
回复
谢谢
[Quote=引用 8 楼 baihacker 的回复:]
引用 7 楼 nk_ysg 的回复:
引用 1 楼 baihacker 的回复:
new(地址) 类型(初始化列表);

做法可以主动调用构造函数,和实现自己分配内存(自己写个内存分配器,在为一个类的对象分配的时候,需要调用构造函数)

能更详细解释下吗?不懂

网上搜索一下放置new
[/Quote]
baihacker 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 nk_ysg 的回复:]
引用 1 楼 baihacker 的回复:
new(地址) 类型(初始化列表);

做法可以主动调用构造函数,和实现自己分配内存(自己写个内存分配器,在为一个类的对象分配的时候,需要调用构造函数)

能更详细解释下吗?不懂
[/Quote]
网上搜索一下放置new
nk_ysg 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 baihacker 的回复:]
new(地址) 类型(初始化列表);

做法可以主动调用构造函数,和实现自己分配内存(自己写个内存分配器,在为一个类的对象分配的时候,需要调用构造函数)
[/Quote]
能更详细解释下吗?不懂
matrixdwy 2008-10-13
  • 打赏
  • 举报
回复
也许是placement new吧
yshuise 2008-10-13
  • 打赏
  • 举报
回复
内存池都是必须这样使用。
jia_xiaoxin 2008-10-13
  • 打赏
  • 举报
回复
而placement new就是在给定的内存上面调用构造函数生成对象。可用于在一块内存上(new出来的)只调用构析函数把对象析构了,不释放内存,然后再构造出另外一个对象。
jia_xiaoxin 2008-10-13
  • 打赏
  • 举报
回复
它这是在考布局new操作吧,

Placement new 是在已经被分配但是尚未处理的内存构造一个对象
new(buffer) Widget(widgetSize)
rollrock1987 2008-10-13
  • 打赏
  • 举报
回复
没想过 up
baihacker 2008-10-13
  • 打赏
  • 举报
回复
new(地址) 类型(初始化列表);

做法可以主动调用构造函数,和实现自己分配内存(自己写个内存分配器,在为一个类的对象分配的时候,需要调用构造函数)

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧