C++函数声明语法
C++ function declaration 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;
// ...
}
您所指的是初始值设定项列表。类或结构可以在其构造函数中使用此列表初始化成员变量。
示例:
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_iters
和num_iters
的类。
首先,它不是函数声明,而是类构造函数实现
类Search在一个具有2个参数的ctor之前声明,现在您的位于其实现的前面,在该实现中,参数用于初始化数据成员。
相关文章:
- C++避免重复声明的语法是什么
- 如何避免#define语法的变量重新声明
- 正向声明语法的差异
- 错误 C2059:语法错误:从结构成员声明'constant'
- 使用具有新信号槽语法的Qt插件系统在接口类中声明信号
- C++指向函数声明语法的指针
- 使用函数类型语法声明成员函数
- 应用于类型别名声明的 [[maybe_unused]] 属性的语法
- 二进制加法过载声明语法错误
- 返回类型布尔函数中的声明语法错误
- OpenCV - Ptr 语法和类定义/声明 - 混淆?
- 如何修复'Size of list( a class) is unknown or zero error'和"声明语法错误"?
- 使用新的 C++11 语法的 auto 进行函数声明,但使用 auto&并且没有 ->
- 如何在源文件中定义类并将其声明在标题文件中(而不必使用`class :: method'语法定义类方法)
- 班级的正向声明:语法错误
- 在 C++ 中使用关键字 using 声明模板化函数指针的语法
- 声明语法错误
- C++ 中的未知变量声明语法
- 术语"函数声明"在§7/9(N4140)中定义,但它没有被定义为语法生产。为什么?
- 使用单个语法声明的c++解析器和格式化器