是否可以在C ++中手动调用类的构造函数?

时间:2014-02-25 21:05:54

标签: c++

创建类对象的最常用方法是使用new关键字。它还调用构造函数。 但是如果我们使用malloc函数来创建对象,则不会调用构造函数。在使用malloc

创建对象后,是否仍然可以手动调用构造函数

2 个答案:

答案 0 :(得分:7)

听起来你想要将构造函数称为malloc创建的一块内存。这是可能的,称为贴装新

void* pMemory = malloc(sizeof(C));
C* pValue = new (pMemory) C();

答案 1 :(得分:2)

您不能像其他函数那样直接调用构造函数,因为构造函数没有名称。

您可以使用的是新的展示位置,这会在提供给新展示位置的内存中调用您的构造函数。