为什么我们首先使用Raw指针?之前没有使用RAII

Sci*_*ion 0 c++ smart-pointers

我说的是一般应用程序,而不是低级别的,因此它们与硬件接口.

查看遗留代码有很多:

delete myObject;
Run Code Online (Sandbox Code Playgroud)

为什么Smart Pointer的概念不是很早就引入的,它只是利用了RAII,这是一个基于堆栈的对象在离开范围时破坏的概念.从第一天起就一直存在.

可能是性能,一个额外的方向(但这是一个小的价格/开销支付).

开发人员可以在不到30分钟的时间内创建基本但功能强大的自定义智能指针.那么为什么这么久?

或者它在那里,但人们选择不使用它...

Ski*_*izz 6

我不知道答案,但是随着C++从C演变而来,C中的很多代码都使用了malloc/free,因为没有其他方法可以做到这一点,因此它将C++转换为new/delete.我确信C++中的智能指针实现是在创建语言之后发生的,毕竟它需要在早期版本的C++中不存在的模板.