64,654
社区成员
发帖
与我相关
我的任务
分享
T& operator*() { return *_p; } //这一句是什么意思,特别是operator*()是什么意思
char & operator[](unsigned short offset);
//重载下标运算符..但是我还是不懂,我希望一个非常详细的说明 ,最好再来一个代码更好理解.谢谢大家..
char operator[](unsigned short offset)const
//和char & operator[](unsigned short offset)有什么区别,区别何在,最好也说明加一个代码,方便我理解.拜托各位好人了,谢谢..#include <iostream>
#include <string>
template <typename T>
class SmartPtr
{
public:
SmartPtr(T* p) : _p(p) {}
~SmartPtr() { delete _p; }
T* operator->() { return _p; }
T& operator*() { return *_p; }
private:
T* _p;
};
int main()
{
SmartPtr<std::string> sp(new std::string);
sp->append("Hello World!");
std::cout << *sp << std::endl;
return 0;
}