以下摘录的含义是什么:
: 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;
// ...
}
答案 0 :(得分: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_;
};
答案 1 :(得分:1)
这是一个构造函数初始化列表。可以推测,Search
是一个包含数据成员program_
,max_iters
和num_iters
的类。
答案 2 :(得分:0)
首先,它不是函数声明,而是类构造函数实现
类搜索在具有2个参数的ctor之前声明,现在您在其实现前面,其中参数用于初始化数据成员。