0

以下摘录的含义是什么:

  : program_(program), max_iters_(max_iterations), num_iters_(0) 

在这段代码中:

Search::Search(const string& program, int max_iterations)
  : program_(program), max_iters_(max_iterations), num_iters_(0) 
{
  max_branch_ = 0; 
 // ...
}
4

3 回答 3

4

您所指的称为初始化列表。类或结构可以在其构造函数中使用此列表初始化成员变量。

例子:

struct foo
{
    foo() : member_(0) {}

    private:
        int member_;
};

如果您有没有默认构造函数的成员,则初始化列表尤其重要 - 因为当您到达构造函数的主体时,每个成员都将被创建。如果您没有为该成员选择合适的构造函数,编译将失败。

例子:

struct bar { bar(int) {} };

struct foo
{
    foo() 
        : bar_(0) // does not compile without this line
                  // because the compiler will try to default
                  // construct otherwise
    {}

    private:
        bar bar_;
};
于 2013-07-22T10:48:45.700 回答
1

那是一个构造函数初始化列表。PresumableSearch是一个具有数据成员program_和的max_itersnum_iters

于 2013-07-22T10:48:12.700 回答
0

首先,它不是函数声明,而是类构造函数实现

Search 类在具有 2 个参数的 ctor 之前声明,现在您位于其实现的前面,其中参数用于初始化数据成员。

于 2013-07-22T10:51:39.417 回答