为什么std :: vector :: front有两个定义? (C ++)

时间:2016-09-22 14:22:12

标签: c++ vector

我是C ++的新手。你能告诉我为什么std :: vector :: front有两个定义,它们是如何不同的,以及它们是如何被调用的?

该函数似乎有两个定义,

  • reference front();
  • const_reference front()const;

当我在Web上查找函数时,我注意到了这两个定义。以下两个网站似乎都说了两个相同的定义。

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

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

1 个答案:

答案 0 :(得分:1)

由于重载解析const const指针使用了this版本。如果返回非const对象是不明智的,从那以后你就可以绕过const

const版本由非const this指针使用。您将获得一个可以修改的对象。

我们称之为 const正确性