【发布时间】:2010-03-04 21:44:00
【问题描述】:
我不想调用构造函数。我正在使用新展示位置。
我只想分配一块T。
我的标准做法是:
T* data = malloc(sizeof(T) * num);
但是,我不知道 (data+i) 是否是 T 对齐的。此外,我不知道这是否是正确的“C++”方式。
如何在不调用构造函数的情况下分配 T 块?
【问题讨论】:
-
为什么不想调用构造函数呢?如果是因为你的构造函数正在做你并不总是想做的工作,你可能会考虑将这项工作转移到一个单独的 init() 方法中。
-
例如,std::vector 执行此操作(分配内存但尚未构造对象)。
标签: c++ memory-management