示例:
void foo(int a,int b=12) {
...
}
既然这是合法的C ++版本?它是在C ++ 11中引入的吗?
答案 0 :(得分:15)
Per Bjarne的"History of C++"(请参阅第6页)在C ++的第一个化身 C With Classes 的第一个版本中添加了默认参数,其“ spec”(如果您可以说它是1980年出版的。
它们一直存在到1998年最初的标准化,一直到今天。
换句话说,自从黎明以来,每个C ++版本都支持默认参数。
换句话说: 字面上永远是 。 :)
答案 1 :(得分:13)
从C ++ 98开始,这在所有C ++标准化版本中都是合法的。
答案 2 :(得分:5)
我从1991年开始使用C ++,然后在Borland C ++ v3.0和Stanley Lippman的书《 C ++ Primer 2nd ed》(也是1991年)中出现了默认参数。我认为这符合“合法”条件-或当时确实如此!