在我看来,它new和它的对应物delete已经过时了,因为有智能指针和函数std::make_sharedand std::make_unique。真的吗?
C++ 确实是一种多级语言。在最高级别,您很少显式使用new,delete因为它们的调用被封装在智能指针或容器中
但是您可能需要构建一个专门的容器类。C++ 仍然是一种很好的语言,因为标准库主要是用 C++ 编写的。在这种情况下,您当然必须管理显式分配和解除分配。这就是我所说的中级编程。
您甚至可以在专用硬件和嵌入式系统上使用 C++。在这种情况下,甚至可以实现特定的分配函数,该函数将通过中级代码new和delete在中级代码中使用,以允许程序的最高级别部分使用(可能是特定的)容器和智能指针。
TL/DR:new并且delete在高级构造中通常不需要。然而,它们是必不可少的,而且在语言的所有部分都没有过时。