new用于动态内存分配。在这种情况下分配的内存在堆上。与这种类型的内存分配相关联的一些成本以及程序员必须进行手动的内存清理和管理。在以下情况下必须使用这种分配类型:
您不知道在编译时需要多少内存。
您想要分配在离开当前块后仍将保留的内存。
除此之外,很少有需要动态内存分配的情况。这是因为在C ++中存在析构函数的概念。当对象/资源的生存期结束时,将调用此函数。这可以用来释放内存。因此,当您创建具有自己的对象的对象,并且主对象超出范围时,它也会释放其子对象的内存。
这些变量称为自动变量,这种类型的内存使用情况会自动存储。您应该使用它,因为它的键入速度更快,运行时速度更快,并且不太容易发生内存/资源泄漏。