的代碼是這樣的:構造函數初始列表,這個代碼是什麼意思?
MemTable::MemTable(const InternalKeyComparator& cmp)
: comparator_(cmp),
refs_(0),
table_(comparator_, &arena_) {
}
我知道
comparator_(cmp)
是CMP將給予comparator_,但
table_(comparator_, &arena_)
什麼辦?
的代碼是這樣的:構造函數初始列表,這個代碼是什麼意思?
MemTable::MemTable(const InternalKeyComparator& cmp)
: comparator_(cmp),
refs_(0),
table_(comparator_, &arena_) {
}
我知道
comparator_(cmp)
是CMP將給予comparator_,但
table_(comparator_, &arena_)
什麼辦?
comparator_(cmp)
該CMP將給予comparator_
更準確地說,這意味着的comparator_
構造將與參數cmp
被調用。所以
table_(comparator_, &arena_)
只是意味着table_
構造將與兩個參數(comparator_, &arena_)
被調用。
在C++中,初始化列表在構造函數的主體之前執行。初始化列表調用其中提到的類成員的構造函數,將這些構造函數的參數傳遞給這個類的構造函數或這個類的成員。你沒有提到「arena_」來自哪裏,但它看起來像是你班上的另一個成員。
它使用這些參數調用'table_'的構造函數。 – 0x499602D2 2015-03-19 01:13:33