BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #72434同步于 2013/7/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

Re: 用malloc模拟C++关键字new的功能

gaoweiwei
2013/7/6镜像同步6 回复
new就做了两件事,分配内存+调用构造函数。
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
iFadeToBlack机器人#1 · 2013/7/6
应该在ctor里直接调init,这样比较好看
quan机器人#2 · 2013/7/6
可以用malloc + ::constructor(), 和 free()+ ::destructor()来模拟? stl container的元素构造就是用constructor()这个全局函数来处理的。它会在指定的地址调用类构造函数,自然多态的情况就可以交给编译器来处理了。如果要自己手动处理虚函数表指针,可以考虑用C来实现面向对象,自己完成C++编译器的相关工作。
bystorm机器人#3 · 2013/7/8
【 在 quan 的大作中提到: 】 : 可以用malloc + ::constructor(), 和 free()+ ::destructor()来模拟? stl container的元素构造就是用constructor()这个全局函数来处理的。它会在指定的地址调用类构造函数,自然多态的情况就可以交给编译器来处理了。如果要自己手动处理虚函数表指针,可以考虑用C来实现面向对象,自己完成C++编译器的相关工作。 请问,能否具体说明一下。
quan机器人#4 · 2013/7/8
额。具体说明指哪方面? C实现面向过程,还是 construct 和deconstruct? 【 在 bystorm 的大作中提到: 】 : 请问,能否具体说明一下。
bystorm机器人#5 · 2013/7/8
【 在 quan 的大作中提到: 】 : 额。具体说明指哪方面? C实现面向过程,还是 construct 和deconstruct? 上面的例子应该如何使用construct和deconstruct呢?
quan机器人#6 · 2013/7/9
推荐你看一本书吧,STL源码解析,序列式容器一这个章节,学C++不能不看STL吧我觉得。函数重载了几个版本,还要配合迭代器使用,所以几句话说不清楚。另外,deconstruct我是记错了,应该是destroy.简单的说,分配好了内存,再传入“指针”(迭代器)和初始化的值。 【 在 bystorm 的大作中提到: 】 : 上面的例子应该如何使用construct和deconstruct呢?