在看STL原始碼中的iterator.h部分,看到兩個函式,不明白這兩個函式之間的區別是很么?
template <class _Iter>
inline typename iterator_traits<_Iter>::iterator_category
__iterator_category(const _Iter&)
{
typedef typename iterator_traits<_Iter>::iterator_category _Category;
return _Category();
}
template <class _Iter>
inline typename iterator_traits<_Iter>::iterator_category
iterator_category(const _Iter& __i) { return __iterator_category(__i); }
我想問的問題是;兩個函式宣告幾乎一樣,除了第二個有一個函式形參名__i,看得出,形參沒有被函式體使用,這樣定義的目的是什么呢?
uj5u.com熱心網友回復:
__iterator_category(const _Iter&)iterator_category(const _Iter& __i)
函式名稱不同,這是兩個不同的函式。至于引數名稱,只是當函式內沒有使用該引數時,引數可以匿名。引數名稱不影響函式定義。
uj5u.com熱心網友回復:
呵呵,樓上火眼。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/118572.html
標籤:基礎類
