再迭代器类及智能指针类中常常用到解引用运算符和箭头元素安抚
class StrBlobPtr{
public:
std::string&operator*()const
{auto p=check(curr,"dereference past end");
return (*p)[curr];
}
std::string*operator->const
{
return & this->operator*()
}
}
解引用运算符首先检查curr是否仍在工作范围内,如果是,则返回curr所指向元素的一个引用,箭头运算符不执行自己的操作,而是调用解引用运算符并返回解引用结果元素的地址。