C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,使用智能指针能更好的管理堆内存。
既然有了需求,对此,我们可以自行打造智能指针。
Person类有show_age()成员函数。
如果new出来的Person对象,那么必须由我们自行delete。
有了智能指针,就可以让智能指针托管这个对象,这个对象的释放就不用担心了,由智能指针自动进行管理。
为了让智能指针像普通指针一样方便实用,就要重载 -> 与解引用 * 运算符。
1 | #include<iostream> |