::new是啥意思?

initial_y 2006-07-29 04:34:45
没见过这么用new的
...全文
316 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
initial_y 2006-07-29
  • 打赏
  • 举报
回复
晕了……不好意思,我没有说清楚
我是在一个模板类看到这个的,里面并没有重载的new,而且用法比较诡异……:

::new (&m_pData[nIndex]) TYPE ;

其中m_pData是一个TYPE*指针,这行是给新成员分配空间的一句,这句是否等于下面这句?:

&m_pData[nIndex] = ::new TYPE ;

请各位给指导指导,谢谢
ycplay 2006-07-29
  • 打赏
  • 举报
回复
::new
意思就是引用某个类中新定义的new标识符,这是局部标识符在外面使用的意思
这个new应该不是创建动态数组的那个new
jixingzhong 2006-07-29
  • 打赏
  • 举报
回复
new 是可以重载,
那么在类中的成员 new ,
和这个 ::new 是不同一个,

所以,
有必要 用这个 ::new 声明这个 new 用的是 全局的new,
否则, 调用的将是 类中的重载成员 new ...
snowbirdfly 2006-07-29
  • 打赏
  • 举报
回复
恩~~
::运算符表示全局可见~~~
new用于申请内存空间,功能和C语言里面的malloc相似~~~
飞哥 2006-07-29
  • 打赏
  • 举报
回复
楼上两位说的不错

很好很好:)
Dong 2006-07-29
  • 打赏
  • 举报
回复
::new是啥意思?
----------------------------
在这里::表示全局的域
那么::new就是调用全局域的new来分配数据!这个new和std::new是不同的
妍妍 2006-07-29
  • 打赏
  • 举报
回复
如果是直接用的话,表示用的是全局的new,::是作用于运算符
估计还有重载的局部的,为了区别吧,这个地方也没什么特别的
initial_y 2006-07-29
  • 打赏
  • 举报
回复
总算搞明白了,原来这个叫作placement new,今天才知道……

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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