2016-09-22 5 views
0

私はC++初心者です。なぜstd :: vector :: frontに2つの定義があるのか​​、それらがどう違うのか、そしてそれぞれがどのように呼び出されているのかを教えてください。なぜstd :: vector :: frontに2つの定義がありますか? (C++)

関数は、二つの定義、

  • 参照フロント()を持っているようです。
  • const_reference front()const;

私はこれらの2つの定義に気がつきました。私はWeb上でその機能を調べました。次の2つのWebサイトは、同じ2つの定義を言うようです。

http://www.cplusplus.com/reference/vector/vector/front/

http://en.cppreference.com/w/cpp/container/vector/front

+0

これはconstの正確性を保つことです。 1つは非const用、もう1つはconst用です。 –

+1

@GillBates:あなたの名前は私を笑わせてくれました。 –

答えて

1

constバージョンは、オーバーロード解決によるconstthisポインタによって使用されます。非constオブジェクトが返された場合、それは賢明ではないでしょう。それ以来、あなたはconstのハッシュをすることができます。

constバージョンは、constthisポインタで使用されます。変更可能なオブジェクトが戻されます。

私たちはこれをというconstの正確さと呼びます。

+0

ありがとう、@FaceyMcFaceFace。 – Toshihiro

関連する問題