![](/img/trans.png)
[英]Overloading assignment operator when the object is on the right-hand side of the assignment
[英]Can an input iterator be dereferenced only on the right-hand sign of an assignment?
我有一個簡單的問題:在 C++ 入門 5ed 由 Lippman 第 10 章。“迭代器類別”中說:
迭代器類別
輸入迭代器:可以讀取序列中的元素。 輸入迭代器必須提供
相等和不等運算符(
==
,!=
)比較兩個迭代器前綴和后綴增量(
++
)以推進迭代器取消引用運算符 (
*
) 以讀取元素; 取消引用只能出現在賦值的右側箭頭運算符 (
->
) 作為(*it).member
的同義詞——即取消引用迭代器並從底層 object 中獲取成員。
他的意思是“取消引用運算符( *
)來讀取元素;取消引用可能只出現在賦值的右側”:在“賦值的左側”。??
我對此感到困惑。 謝謝你。
作者的意思是,如果你有一個輸入迭代器it
,那么你可以這樣做:
foo = *it;
但您可能無法做到:
*it = foo;
即,您可以從迭代器中讀取(它位於賦值的右側),但不能保證您可以寫入它(位於左側)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.