在声明函数时初始化变量

时间:2017-06-16 18:03:20

标签: c++

我看到一个代码,其中一个int变量在像

这样的函数中声明
int func(vector<int> a, int lum=0) {...}

我正在寻找一个任何人都可以使用它的想法或逻辑。因为它感觉很奇怪。还告诉我它是否是正确的编码方式或编码器是完全愚蠢的?c

1 个答案:

答案 0 :(得分:3)

这称为“默认参数”。也就是说,如果用户没有将第二个值传递给func,则函数将接收0

例如:

int func(std::vector<int> a, int lum=0)
{
   std::cout << "Received lum value: " << lum << std::endl;
}

int main(){
   std::vector<int> a = {1, 2, 3};
   func(a); // "Received lum value: 0"
   func(a, 2); // "Received lum value: 2"
}

cppreference有一个很好的页面。

所有默认参数必须出现在函数声明的最后,如果您选择单独声明和定义,则不应再次出现在函数的定义中:

int func(std::vector<int> a, int lum=0); // declaration

// ...

int func(std::vector<int> a, int lum){ // definition, no default arguments
   //...
}