我编写了自己的内存库,可以帮助我避免内存泄漏并避免碎片问题。一切正常。主要问题是它不适用于类。当我调用my_alloc(大小)时,我想自动调用构造函数(如果存在)。我可以在不重载新运算符的情况下完成吗?
答案 0 :(得分:2)
您可以在已分配的内存中使用 placement new ,以便在不让new
进行分配的情况下调用构造函数。
重载new
有什么问题?
答案 1 :(得分:1)
检查您的C ++实现。其中一些(我认为G ++编译器这样做)调用C运行时malloc
来获取new
的内存,然后调用构造函数。
如果您有其中一个实现,那么您需要做的就是正确覆盖标准库malloc和free函数(阅读库内部文档),C ++将自动运行。