C++构造函数原型参数
C++ constructor prototype parameter
例如,有一个类 foo :
class foo {
public:
foo (int = 10);
.....
}
构造函数的原型内部有"int = 10"。那么,这意味着什么呢?Int 只是一个整数类型,不是吗?那么,给它赋值不是违法的吗? 我试图在普拉塔的书和其他任何地方找到这样的例子,但我没有找到解释。
您可以在函数声明中省略参数的名称(也可以在定义中),但仍然可以指定该参数的默认值。
考虑:
void f(int x = 10) {
printf("%dn", x);
}
void g(int = 10);
void g(int x) {
printf("%dn", x);
}
int main() {
f();
g();
return 0;
}
结果:
10
10
在构造函数的情况下也是如此。
那么,给它赋值不是违法的吗?
这里绝对不涉及任何任务。=
字符在C++中可能具有完全不同的含义:
- 分配:
i = 0;
- 初始化:
int i = 0;
- 使成员函数纯虚拟:
virtual void f() = 0;
- 指定默认参数:
void f(int i = 0);
后者是你遇到的。构造函数可以像任何其他普通函数一样具有默认参数。
相关文章:
- 如何反转整数参数包
- 什么..(省略号)作为函数原型中唯一的函数参数,C++?
- 试图使用int []作为打字模板,编译器未识别函数最小的原型中的参数
- 我如何在C 中创建一个函数原型,该函数原型接受两个整数作为参数并返回其差异
- C++构造函数原型参数
- 将模板原型作为模板参数传递 - 是否可能
- 如何将用户输入作为参数传递给函数原型
- 为什么函数原型中没有参数是首选
- 当一个参数在函数原型中被赋值时,这意味着什么
- Template:通过函数原型确定模板参数
- 如何用函数原型返回多个参数
- 我不能有一个将多个整数作为参数的构造函数方法/原型吗?阿杜伊诺
- 函数原型中的参数名称
- 在头文件中使用std::vector作为输入参数定义函数原型
- 函数原型和数组参数
- 函数原型中不同的参数名称
- C++:使用一个函数的输出作为带有函数原型的头文件中另一个函数的参数
- 为什么这个参数在regex_match的原型中排序
- 函数原型和参数强制
- 为什么函数原型中的参数数量与定义中的参数不匹配