通过引用传递参数时,通常不可能提供默认值。但是,对于常量引用,此规则有一个例外。
考虑以下函数声明:
virtual const ULONG Write(ULONG &State = 0, bool sequence = true);
此代码将导致错误,因为 C 不允许临时值(例如默认值 0) 绑定到非常量引用。
Constant 的解决方案引用
对于常量引用,可以提供默认值。这是因为编译器可以保证引用不会被修改。
virtual const ULONG Read(const ULONG &State = 0, bool sequence = true);
非恒定引用的解决方法
虽然默认值不能分配给非恒定引用-const 引用,有一个使用静态实例的解决方法:
static int AVAL = 1; void f( int &x = AVAL ) { // stuff }
现在可以使用函数 f 来调用或不带参数,不提供参数时使用默认值 AVAL。然而,这种方法的实际用途有限。
以上是C 引用可以有默认参数值吗?的详细内容。更多信息请关注PHP中文网其他相关文章!