构造函数初始列表,这段代码的含义是什么?

时间:2015-03-19 00:58:31

标签: c++ class

代码是这样的:

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

我知道

comparator_(cmp)

cmp将被赋予comparator_,但是

table_(comparator_, &arena_)

要做什么?

2 个答案:

答案 0 :(得分:1)

comparator_(cmp)
  

cmp将被赋予比较器_

更准确地说,这意味着将使用参数comparator_调用cmp的构造函数。所以

table_(comparator_, &arena_)

只是意味着将使用两个参数table_调用(comparator_, &arena_)的构造函数。

答案 1 :(得分:0)

在C ++中,初始化列表在构造函数的主体之前执行。初始化列表调用其中提到的类成员的构造函数,从此类的构造函数或此类的成员传递给那些构造函数参数。你没有提到“arena_”的来源,但它看起来像是你班上的另一个成员。