[英]Why my overload operator+ in this c++ class doesn't need to be implemented as operator-?
[英]why is operator-> implemented by operator* in C++ STL library?
我讀了std::deque
源代碼,我找到了_deque_iterator::operator->
和_deque_iterator::operator*
的以下實現
reference operator* const() { return *cur; }
pointer operator-> const(){ return &(operator*()); }
所以我的問題是為什么不只是返回cur
指針? 像這樣:
pointer operator-> const(){ return cur; }
它更靈活。
如果發生變化,您只需在一個地方進行更改即可。 如果你返回cur
(如你所說,你有兩個地方你必須改變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.