reference operator*() { return *_ptr; } //解引用操作
array_iterator<T, N>&operator++() //前置递增
{
++**this; //增加_ptr,
//当把上面那句改为 ++_ptr后就能实现 这两者的区别是什么?
return *this;
}
array_iterator<T, N> operator++(int) //后置递增
{
array_iterator<T, N> tmp = *this; //返回量
++*this;
return tmp;
}
当把++**this;改为 ++_ptr就能实现,这两者有什么区别?
(_ptr是类里的一个成员,为指针类型 T*)
伊谢尔伦2017-04-17 13:04:55
++*this
== ++(this->operator*())
== ++*(this->_ptr)
== ++*_ptr
++*_ptr和++_ptr顯然是不一樣的,所以題主你的程式碼當然不能實現願望。
PHP中文网2017-04-17 13:04:55
reference operator() { return _ptr; } //解引用操作
上訴語句回傳的是ptr指向的值,
而this得到類,該類再得到類,該類再得到類呼叫上面的操作符的時候,得到的是該指標指向的值,所以實際上是修改了指標指向的值而不是指標的值。