由于哪个C ++版本允许默认参数?

时间:2019-01-22 14:22:59

标签: c++ c++11

示例:

void foo(int a,int b=12) {
...
}

既然这是合法的C ++版本?它是在C ++ 11中引入的吗?

3 个答案:

答案 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年)中出现了默认参数。我认为这符合“合法”条件-或当时确实如此!