hur.cn - 华软网

 热门搜索

new到底是一个模板函数,还是一个运行时函数

  作者:未知    来源:网络    更新时间:2011/9/16
VC/gcc的反汇编,new都是一个crt_new...之类的函数实现。
同时,看代码(VC的new operator代码),发现又是一个类似模板的实现。

因为new的对象类型是不确定的,似乎只有泛型能做到这一点----malloc完成之后调用相应的构造函数。
如果new是一个固定的c++类库函数的话,它如何能处理不同的类型,调用对应的构造函数呢?
---华软 网友回答---
new 是 操作符。
不同编译器有不同实现,你看到的代码只是new实现的一部分。
---华软网友回复---
运行时函数由编译器决定的
---华软网友回复---
new分配内存并执行默认的构造函数,和RUNTIME()->CreateObject()作用,大同小异。但用new时,构造函数必须是public,RUNTIME()->CreateObject(),则不需要。
---华软网友回复---
你可以把它理解为封装了malloc的operator运算符      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。