我有一些代码,我有3个重载函数。我希望其中一个接受double作为参数,或者如果没有传递参数则调用它。其他人只接受一个int而另一个接受char,就是这样。我该怎么做呢?
答案 0 :(得分:7)
如果您希望在用户拨打没有参数的呼叫时执行某项功能,请为您的参数指定一个默认值:
void foo(double d = 0.0) {
...
}
void foo(int i) {
...
}
void foo(char c) {
...
}
当用户拨打foo()
时,将调用重载double
。代码将被执行,就像传递了零一样。
答案 1 :(得分:1)
检查此代码:
#include <iostream>
using namespace std;
void foo(double x=0.0) // give it a default value for it to be called with no arguments
{
cout<<"foo(double) is being called"<<endl;
}
void foo(int x)
{
cout<<"foo(int) is being called"<<endl;
}
void foo(char x)
{
cout<<"foo(char) is being called"<<endl;
}
int main()
{
foo();
foo(3.5);
foo(10);
foo('c');
return 0;
}
输出:
foo(double)被称为
foo(double)被称为
foo(int)被称为
正在调用foo(char)