如何解决如何从语言上区分所有形式的新事物?
在C ++中,new
可以表示三件事(如果还有更多,请告诉我):
-
int * ptr = new int;
->分配+构造 -
int * ptr = (int *) operator new(sizeof(int))
->仅分配 -
int x; new (&x) int;
->仅用于构造(用于对象)
我在口头说话时如何区分?
解决方法
-
int * ptr = new int;
这称为“ new expression”。
-
int * ptr = (int *) operator new(sizeof(int))
这称为operator new
。用于分配数组时,它称为operator new[]
。
-
int x; new (&x) int;
这也是“新表达式”,但提供了可选的放置参数。为了将它与没有放置参数的“新表达式”区分开来,通常将其称为“ placement new”。
因为非放置式新表达式是最常见的,所以它们通常是在C ++中使用“新”一词时所引用的。
,也许是“分配和构造新的”,“仅分配新的”和“仅建造新的”,最后一个也被称为“布局新”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。