當我讀stdC++代碼時,我對下面的代碼感到困惑。 這是一段stl_list.h的代碼。在C++中有「typedef」的任何特殊含義嗎?
template <class _Tp, class _Alloc>
class _List_base
: public _List_alloc_base<_Tp, _Alloc,
_Alloc_traits<_Tp, _Alloc>::_S_instanceless>
{
public:
typedef _List_alloc_base<_Tp, _Alloc,
_Alloc_traits<_Tp, _Alloc>::_S_instanceless>
_Base; /* Is _Base a kind of type?*/
typedef typename _Base::allocator_type allocator_type;
_List_base(const allocator_type& __a) : _Base(__a) {/* How can a type be initiated like this?*/
_M_node = _M_get_node();
_M_node->_M_next = _M_node;
_M_node->_M_prev = _M_node;
}
}
讓我困惑的是_Base
。該名稱由typedef
定義。我認爲這是一種類型。但_Base
出現在初始化列表中。 我如何理解這種用法?或者,請爲我粘貼一些有用的鏈接。
非常好的答案。謝謝。 –