C++函数声明语法

C++ function declaration syntax

本文关键字:语法 声明 函数 C++      更新时间:2023-10-16

以下摘录的含义是什么:

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

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

示例:

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_;
};

这是一个构造函数初始化列表。假定Search是具有数据成员program_max_itersnum_iters的类。

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

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