2015-03-19 22 views
0

的代碼是這樣的:構造函數初始列表,這個代碼是什麼意思?

MemTable::MemTable(const InternalKeyComparator& cmp) 
: comparator_(cmp), 
    refs_(0), 
    table_(comparator_, &arena_) { 
} 

我知道

comparator_(cmp) 

是CMP將給予comparator_,但

table_(comparator_, &arena_) 

什麼辦?

+3

它使用這些參數調用'table_'的構造函數。 – 0x499602D2 2015-03-19 01:13:33

回答

1
comparator_(cmp) 

該CMP將給予comparator_

更準確地說,這意味着的comparator_構造將與參數cmp被調用。所以

table_(comparator_, &arena_) 

只是意味着table_構造將與兩個參數(comparator_, &arena_)被調用。

0

在C++中,初始化列表在構造函數的主體之前執行。初始化列表調用其中提到的類成員的構造函數,將這些構造函數的參數傳遞給這個類的構造函數或這個類的成員。你沒有提到「arena_」來自哪裏,但它看起來像是你班上的另一個成員。