构造
|
|
类别: 分配器 |
组件类型: 函数 |
原型
template <class T1, class T2> void construct(T1* p, const T2& value);
描述
在 C++ 中,运算符new为对象分配内存,然后通过调用构造函数在该位置创建对象。但是,有时将这两个操作分开很有用。 [1] 如果p是指向已分配但未初始化的内存的指针,那么construct(p, value)在由p指向的位置创建类型为pT1的对象。参数valuep作为参数传递给T1
的构造函数。构造定义在标准头文件 memory 和非标准向后兼容头文件 algo.h 中定义。该
-
p算法不再是 C++ 标准的一部分;它出现在早期草案中,为了向后兼容性,它在此实现中得以保留。类型要求.
T1
-
p必须具有一个接受类型为T2.
- 的单个参数的构造函数。p先决条件p.
p
是一个有效的指针,指向一个内存区域,该区域的大小至少为
double* dp = (double*) malloc(sizeof(double));
construct(dp, 3);
assert(*dp == 3);
sizeof(T1)
由构造p
指向的内存未初始化。也就是说,在位置
p, 没有构造任何对象。, 复杂度,
示例, 备注,
[1] 特别是,
construct
以及其他低级内存分配原语用于实现容器类。