重载函数


C++ 支持函数重载(Overload),为类似功能的函数提供了统一名称,然而根据参数列个数或类型的不同,由编译器选择要调用的函数,函数重载令开发者在设计函数名称可以简便一些。

例如,依参数列个数的不同来重载:

#include <iostream> 
using namespace std; 

void foo(int); 
void foo(int, int); 

int main() { 
    foo(10); 
    foo(20, 30); 

    return 0; 
} 

void foo(int x) { 
    cout << "实参:" << x << endl; 
} 

void foo(int x, int y) { 
    cout << "实参:" << x << " " << y << endl; 
}

执行结果:

实参:10
实参:20 30

也可以根据参数类型来决定调用的函数,例如:

#include <iostream> 
using namespace std; 

void foo(int); 
void foo(double); 

int main() { 
    foo(10); 
    foo(10.0); 

    return 0; 
} 

void foo(int x) { 
    cout << "int 实参:" << x << endl; 
} 

void foo(double x) { 
    cout << "double 实参:" << x << endl; 
}

执行结果:

int 实参:10
double 实参:10

重载时可以根据参数数据类型,也可以根据参数的个数,或是两者的结合,不过返回类型不能作为重载的依据。


展开阅读全文