C++关于返回引用和非引用的区别
这几天刚好遇到一个题目。我们跳过背景,直接切入正题。
template<class T>
class HyperVectorIterator : public std::iterator< std::random_access_iterator_tag, T >;
这是类的定义,这个类的目的是继承iterator,然后完成相应的++, --, <, ==等相应符号的重载,作为HyperVector类的迭代器。HyperVector类是一个自定义的容器类,支持随机访问,这里先不多介绍此类。下面我们拿自减一的操作符重载来实验:
// An highlighted block
template<class T>
HyperVectorIterator<T> HyperVectorIterator<T>::operator--()
{
--(this->m_pos);
return HyperVectorIterator(this->m_pContainer, this->m_pos);
}
// An highlighted block
template<class T>
HyperVectorIterator<T>& HyperVectorIterator<T>::operator--()
{
--(this->m_pos);
return