的std::string
訪問者(back
,front
,at
,和operator[]
)具有const
和非const
過載,如下:爲什麼std :: string的const訪問器返回一個引用?
char& x();
const char& x() const;
爲什麼第二版本返回const
參考,而不是簡單地返回char
價值(作爲副本)?
根據rules of thumb on how to pass objects around,當不需要修改原始值時,不應該通過值傳遞小對象嗎?
一個字:一致性(例如'std :: vector')。 – Simon
爲什麼它應該與非const版本有不同的語義? – juanchopanza