簡體   English   中英

為什么operator->在C ++ STL庫中由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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM