为什么构造/析构函数不是在使用所谓的malloc和free在C++中,而不是当我们使用new和delete,构造函数/析构函数被调用?为什么会这样?
malloc和free纯粹的内存管理功能,他们不知道什么类(和长期存在的前C++).它们是低级别的内存操作.
C++向C添加了类,并作为该过程的一部分,添加new并delete创建和销毁类的实例.这与低级内存管理不同.
malloc是一个在构造函数之前的C函数.free是一个C函数,它可以在析构函数之前进行排序.它们都是必须在没有构造函数和析构函数的语言中运行的C函数.