小编use*_*777的帖子

C++重载解引用运算符

我对C++比较陌生,仍然试图掌握语法.我一直在看一些运算符重载的例子,最近的智能指针实现.这是我正在看的一个非常通用的例子:

template < typename T > class SP
{
    private:
    T*    pData; // Generic pointer to be stored
    public:
    SP(T* pValue) : pData(pValue)
    {
    }
    ~SP()
    {
        delete pData;
    }

    T& operator* ()
    {
        return *pData;
    }

    T* operator-> ()
    {
        return pData;
    }
};
Run Code Online (Sandbox Code Playgroud)

当重载引用运算符时,为什么类型为T&?类似地,当重载结构解除引用时为什么是类型T*?

c++

31
推荐指数
2
解决办法
4万
查看次数

标签 统计

c++ ×1