为什么没有在malloc中调用构造函数?

时间:2015-03-18 16:22:33

标签: c++

为什么在c ++中使用mallocfree而不是在使用newdelete时调用构造函数/析构函数时,会调用构造函数/析构函数?为什么会这样?

2 个答案:

答案 0 :(得分:6)

mallocfree完全是内存管理函数,它们对类没有任何了解(并且在C ++之前很久就存在)。它们是低级别的内存操作。

C ++向C添加了类,并且作为该过程的一部分,添加了newdelete来创建和销毁类的实例。这与低级内存管理不同。

答案 1 :(得分:5)

malloc是一个在构造函数之前的C函数。 free是一个在析构函数之前的C函数。它们都是C函数,必须在没有构造函数和析构函数的语言中运行。