C ++函数声明语法

时间:2013-07-22 10:46:34

标签: c++ syntax

以下摘录的含义是什么:

  : 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; 
 // ...
}

3 个答案:

答案 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_itersnum_iters的类。

答案 2 :(得分:0)

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

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