# 重載:返回值類型和函數名相同,參數類型或個數不同的若干個函數。
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); //對的
}
注意:局部聲明函數是一種不明智的方法,函數聲明一般放在頭文件。
# 每一個版本的函數重載都應該在同一個作用域中聲明。