代码是这样的:
MemTable::MemTable(const InternalKeyComparator& cmp)
: comparator_(cmp),
refs_(0),
table_(comparator_, &arena_) {
}
我知道
comparator_(cmp)
cmp将被赋予comparator_,但是
table_(comparator_, &arena_)
要做什么?
答案 0 :(得分:1)
comparator_(cmp)
cmp将被赋予比较器_
更准确地说,这意味着将使用参数comparator_
调用cmp
的构造函数。所以
table_(comparator_, &arena_)
只是意味着将使用两个参数table_
调用(comparator_, &arena_)
的构造函数。
答案 1 :(得分:0)
在C ++中,初始化列表在构造函数的主体之前执行。初始化列表调用其中提到的类成员的构造函数,从此类的构造函数或此类的成员传递给那些构造函数参数。你没有提到“arena_”的来源,但它看起来像是你班上的另一个成员。