为什么在c ++中使用malloc
和free
而不是在使用new
和delete
时调用构造函数/析构函数时,会调用构造函数/析构函数?为什么会这样?
答案 0 :(得分:6)
malloc
和free
完全是内存管理函数,它们对类没有任何了解(并且在C ++之前很久就存在)。它们是低级别的内存操作。
C ++向C添加了类,并且作为该过程的一部分,添加了new
和delete
来创建和销毁类的实例。这与低级内存管理不同。
答案 1 :(得分:5)
malloc
是一个在构造函数之前的C函数。 free
是一个在析构函数之前的C函数。它们都是C函数,必须在没有构造函数和析构函数的语言中运行。