• C++智能指针

    今天复习了一下智能指针,然后动了动脑子,恍然觉得以前并没有真正的理解智能指针。首先是shared_ptr,shared_ptr的作用就不做介绍了。那么shared_ptr是如何实现的呢?我分析了一下,智能指针的要点就是“计数”和“指针”。所以智能指针的成员变量中就必须有计数值和对象指针。

    指针计数为零的时候自动销毁,所以析构函数中需要实现计数和对象销毁的功能。然后还要注意的就是复制构造函数和复制函数(operator=)。想起来觉得也不难实现,于是就动手写了个丑陋版shared_ptr。

    #include <iostream>
    
    namespace toy{
    template<class T>
    class shared_pointer{
    
    public:
        template<class Y> explicit shared_pointer(Y* p) {
            px = p;
    【查看更多】