void func ( string word = "hello", int b ) {
// some jobs
}
在另一个函数中
//calling
func ( "", 10 ) ;
当我编译时,它会发出此错误:
参数缺少默认参数
我想使用该功能,例如
func ( 10 )
或 func ( "hi" )
。
如何在不更改任何内容(例如设置
int b = 0
)的情况下修复它?
默认参数开始后不能有非默认参数。换句话说,您如何指定 b
的值,而将
word
保留为默认值“hello”?
所以只需将函数声明更改为
void func(int b, string word = "hello")
由于您的参数具有不同的类型,因此您可以使用重载获得相同的效果:
void func ( string word, int b ) {
// some jobs
}
void func ( int b ) { func("hello", b); }
(1) 改变参数的顺序:
void func (int b, string word = "hello");
(2) 为
b
指定默认值:
void func (string word = "hello", int b = 0);
要修复它,您可以使用重载:
void func ( string word, int b ) {
// some jobs
}
void func ( string word ) {
func( word, 999 );
}
void func ( int b ) {
func( "hello", b );
}