1.函数重载(Function Overload)
1.1定义
C++规定在同一作用域中,同名函数的形式参数(指参数的个数、类型或者顺序)不同时,构成函数重载。
1.2用法
比如,要从两个变量中返回其中较大的一个值,可以编写如下两个构成重载的函数。
int max(int a,int b)
{
return a>b?a:b;
};
double max(double a,double b)
{
return a>b?a:b;
}
1.3注意事项
(1)函数返回值类型与构成函数重载无任何关系;
(2)类的静态成员函数与普通成员函数可以形成重载;
(3)函数重载发生在同一作用域,如类成员函数之间的重载、全局函数之间的重载。
2.函数隐藏(Function Hiding)
2.1定义
函数隐藏指不同作用域中定义的同名函数构成函数隐藏(不要求函数返回值和函数参数类型相同)。比如派生类成员函数屏蔽与其同名的基类成员函数、类成员函数屏蔽全局外部函数。请注意,如果在派生类中存在与基类虚函数同返回值、同名且同形参的函数,则构成函数重写。
2.2用法用例
请仔细研读以下代码。
#include <iostream>
using namespace std;
void func(char* s)
{
cout<<"global function with name:"<<s<<endl;
}
class A
{
void func()
{
cout<<"member function of A"<<endl;
}
public:
void useFunc(