2013-03-16 89 views
1

我是C++的新手。所以,請忍受我。我正在研究std::vector課程的實施。我發現了以下兩種不同的begin()方法的實現。我知道第一個返回一個RW迭代器,第二個返回一個只讀迭代器。我認爲僅僅返回類型的差異對於函數重載是不夠的。那麼這項工作如何?向量中的C++ const迭代器

iterator 
begin() 
{ return iterator(this->_M_impl._M_start); } 

const_iterator 
begin() const 
{ return const_iterator(this->_M_impl._M_start); } 
+3

一個是'const',另一個不是。這對於超載就足夠了。 – Mat 2013-03-16 09:53:59

+0

這是標準庫,[不是STL](http://kera.name/articles/2010/08/it-is-not-called-the-stl-mmkay/)。你可以參考'std :: vector'。 – Angew 2013-03-16 09:57:36

+0

更改爲std:; vector – codefx 2013-03-16 10:22:21

回答

0

隱含的「this」參數在第二種方法中爲const。這足以在超載中區分它們。