智能指针简介
ssk-wh Lv4

C++不像Java那样拥有垃圾自动回收机制,需要程序员手动分配和销毁对应内存,这其实是一种更加高效且灵活的方式,但同时也可能受限于人为的操作,导致内存泄露等风险。

C++程序员通常采用RAII(Resource Acquisition Is Initialization)机制来管理内存资源:在类的构造函数中申请资源,在析构函数中释放资源。我们必须保证malloc分配的内存最终能被free,new创建的对象能在正确的时机被delete,并且时刻警惕使用野指针导致的崩溃。相信所有C/C++的coder都被内存泄漏和野指针崩溃问题折磨过。

Qt中提供了QPointer、QScopedPointer、QSharedPointer、QWeakPointer等几种基本智能指针帮助我们规避内存泄漏和野指针的问题。

 Comments