哪个库具有全局新和删除操作符的定义?具体来说,库中的哪个文件包含这些运算符的定义?全局新和删除操作符的定义
回答
的operator new
和operator delete
非布局形式(和它们的数组形式)在每个翻译单元中都在全局范围内隐式声明。
标准布置形式在<new>
中声明。
库函数的定义通常不可用。您的供应商可能会提供来源,在这种情况下,他们将在某处。
虽然,从你的意见,你可以谈论在新表达使用new
,而不是operator new
功能分配内存。 新表达式由编译器处理,生成对operator new
和对象构造函数的必要调用。这可能不会有任何具体的实现;您需要查看编译器代码生成器的相关部分。
@ Mike:我可以看到他们的代码就像看到'malloc','printf'等代码 – 2012-07-05 12:09:55
@LinuxPenseur:声明是隐式的,所以你看不到它们。这些定义在源代码中的某处,无论是您的库还是您的编译器都由其构建而成 - 无论是否可用,这取决于供应商。 – 2012-07-05 12:11:42
没有指定它们在哪里定义的位置,但是指定它们在标头<new>
中声明。 (你不应该有,如果你只是使用非配置new
表达式中使用的标准版本包括<new>
,这些都自动适用于所有翻译单元。)
- 1. 如何正确替换全局新增&删除操作符
- 2. 全局临时表删除操作
- 3. 在OSX上替换libstdC++。dylib(4.0)全局新增和删除操作符
- 4. InstallShield,.msi,自定义操作和全局变量
- 5. ==操作符和列表::删除()
- 6. C++删除操作符
- 7. C5027“移动赋值操作符被隐式定义为删除”
- 8. Sharepoint自定义操作删除网站操作菜单项
- 9. 删除全局PTR
- 10. 为什么删除操作符操作符不会删除NodeList类的属性?
- 11. 翻新自定义参数操作符
- 12. UITableView滑动以删除:如何自定义按钮和操作?
- 13. 新的操作符和删除操作符对这个类的指针Deque的内容没有影响
- 14. 开放图谱(测试版) - 使用全局操作和全局对象与自定义的
- 15. 删除不支持Javascript的操作符
- 16. jQuery的URL字符串操作和字符删除
- 17. 全局“放置”删除[]
- 18. 删除和重新分配全局指针 - 段错误
- 19. 使用新操作符和删除操作符检测dbx中的内存泄漏
- 20. 如何在自定义键盘中使用系统全局键和删除键?
- 21. 定义全局NSMutableArray
- 22. 定义全局符号(错误)
- 23. 如果未定义,VC++为每个类提供默认的“删除”操作符
- 24. 删除自定义操作栏中的填充
- 25. C++标准和全局符号去除
- 26. 删除操作栏
- 27. NHibernate删除操作
- 28. 在C++中重载删除操作符
- 29. Solr删除与自定义全进口
- 30. 在pthreads-w32 for visual C++中,新的和删除操作符是否是线程安全的?
这取决于您的实施。 – 2012-07-05 12:03:37
如果您问这是如何制造的,他们会在自己内部使用malloc()和free()。 – SingerOfTheFall 2012-07-05 12:05:10
@SingerOfTheFall:这不一定是真的。 – 2012-07-05 12:05:59