重载 new,delete 不会改变的是 replacement new 在某个现有内存上,创建对象 new ,先分配内存,再在这块内存上,创建对象 delete 先析构对象,再释放内存 new[] ,先分配一块存放一定批量的对象的内存,再在这块内存上,批量分别创建对象 delete[] 先析构内存上的批量对象,再释放这一块内存 这种语义 是 重载 new,delete 所不能改变的 能改变的是, 1)在哪里分配内存, 2)除了实际需要的内存之外,额外分配多少内存,来处理内存管理的需要。 3)甚至还可以通过一定手段 改变, 内存不足时的处理策略。
。。。。 重载new倒是分配内存, 可那还算new吗? 只能算一个特殊名称的函数吧 。。。。。
[quote=引用 10 楼 king191923157 的回复:] [quote=引用 5 楼 u011642451 的回复:] [quote=引用 3 楼 adlay 的回复:] new 本身是可以重载的,你想 new 到哪里就可以把它重载到哪里
[quote=引用 11 楼 u011642451 的回复:] [quote=引用 10 楼 king191923157 的回复:] [quote=引用 5 楼 u011642451 的回复:] [quote=引用 3 楼 adlay 的回复:] new 本身是可以重载的,你想 new 到哪里就可以把它重载到哪里
重载new倒是分配内存, 可那还算new吗?
[quote=引用 5 楼 u011642451 的回复:] [quote=引用 3 楼 adlay 的回复:] new 本身是可以重载的,你想 new 到哪里就可以把它重载到哪里
[quote=引用 3 楼 adlay 的回复:] new 本身是可以重载的,你想 new 到哪里就可以把它重载到哪里
就是堆上,inplacement new和自定义new另论。
new 本身是可以重载的,你想 new 到哪里就可以把它重载到哪里
64,282
社区成员
250,470
社区内容
加载中
试试用AI创作助手写篇文章吧