我正在写一个内存管理模板类,我想在其中创建一个固定大小的C风格的数组,以充当堆。我一直存储在数组中的对象是这样的:如何在不调用默认构造函数的情况下创建C风格的数组?
T v[SIZE];
由于这只会作用,作为一个堆,可容纳T对象,我不希望得到自动调用中的每个对象的T默认构造函数阵列。
我想到了解决这样定义堆:
char v[SIZE * sizeof(T)];
...但是这会给我对齐问题。
有没有更好的方法来实现这一目标?
地址:由于我有特殊的运行时间要求,所以这个类不必对全局堆进行任何分配。
ADD 2:SIZE是一个模板参数,在编译时已知。
什么时候你打算如果不是,那么T的构造函数被调用?手动分配数组项目,还是使用自己的新操作符? – Elemental 2010-02-16 14:06:42
你可以使用malloc,但是,而且,但是 - 你不应该需要这种功能。 – Drakosha 2010-02-16 14:09:09
T构造函数将被手动调用。这部分不是问题。 – 2010-02-16 14:14:31