为什么C ++不允许参数成为默认参数?

时间:2017-03-25 07:18:15

标签: c++ c++11 standards language-design default-parameters

goto :eof

为什么C ++不允许参数成为默认参数?

基本原理是什么?

1 个答案:

答案 0 :(得分:10)

该限制的一个经常被引用的潜在理由如下:允许参数作为默认参数需要对参数评估施加至少部分排序。必须首先评估在其他参数中用作默认参数的参数。

同时,C ++继续坚持原始参数评估方法:参数以未指定的顺序进行评估。

可以使用相同的推理来解释为什么不能在成员函数的默认参数中引用类成员:这将对隐藏参数this的评估施加一些排序要求。