我是否错误地使用默认参数?

yoo*_*nsi 9 c++ function default-arguments

我刚刚开始阅读C++的初学者书.我有一些java经验(但是说过,我从来没有在java中使用默认参数,说实话)

所以,如上所述,我的问题是默认参数..

这是我正在使用的代码片段:

#include <iostream>

using namespace std;

//add declaration
int add(int a, int b);

int main (void)
{
        int number1;

        cout << "Enter the first value to be summed: ";
        cin >> number1;
        cout << "\nThe sum is: " << add(number1) << endl;
}

int add(int a=10, int b=5)
{
        return a+b;
}
Run Code Online (Sandbox Code Playgroud)

我从g ++编译器得到的响应是:"函数'int add(int,int)'的参数太少了

我做错了吗?(我也用文字参数尝试过)

PS我似乎无法正常显示代码片段?系统有变化吗?

bil*_*llz 19

这是相反的方式

//add declaration
int add(int a=10, int b=5);


int add(int a, int b)
{
   return a+b;
}
Run Code Online (Sandbox Code Playgroud)

§8.3.6默认参数默认参数只能在函数声明的parameter-declaration-clause或template-parameter中指定.不应为参数包指定默认参数.

  • 如果你想知道原因,那是因为编译器需要知道调用站点的默认值.函数体可以完全在另一个文件中,因此信息不可用. (7认同)