# 重载:返回值类型和函数名相同,参数类型或个数不同的若干个函数。
void add(int a, int b)
{
cout << a+b << endl;
}
void add(double a, double b)
{
cout << a+b << endl;
}
# 屏蔽(隐藏):如:一个变量的名与函数名形同
Demo1
void add()
{
//...
}
int main()
{
int add = 9;
add(); //此时编译会报错,因为add()已经被变量屏蔽(隐藏)了
return 0;
}
</pre><pre>
Demo2:
void print(string str);
void print(int a); //重载
void main()
{
//这里会发生函数隐藏,而不是重载
void print(double b); //这是一个局部函数的声明
print(3); //错误,现在只能看到double类型的print函数了
print("Hello"); //也是错的
print(3.14); //对的
}
注意:局部声明函数是一种不明智的方法,函数声明一般放在头文件。
# 每一个版本的函数重载都应该在同一个作用域中声明。