如何使用double参数或无参数执行C ++函数

时间:2015-01-17 02:53:39

标签: c++

我有一些代码,我有3个重载函数。我希望其中一个接受double作为参数,或者如果没有传递参数则调用它。其他人只接受一个int而另一个接受char,就是这样。我该怎么做呢?

2 个答案:

答案 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)