作用:
函数重载满足条件:
#include<iostream>
using namespace std;
//函数重载
//1.作用域:当前测试函数都在全局作用域下
//2.函数名称都相同
//3.(1)函数参数类型不同
void test()
{
cout << "test函数调用" << endl;
}
void test(int a)
{
cout << "test 的 int a 函数调用" << endl;
}
void test(double a)
{
cout << "test 的 double a 函数调用" << endl;
}
int main()
{
test();
test(10);
test(3.14);
system("pause");
return 0;
}
(2)个数不同
#include<iostream>
using namespace std;
//函数重载
//1.作用域:当前测试函数都在全局作用域下
//2.函数名称都相同
//3.(1)个数不同
void test()
{
cout << "test函数调用" << endl;
}
void test(int a)
{
cout << "test 的 int a 函数调用" << endl;
}
void test(int a,int b)
{
cout << "test 的 int a int b 函数调用" << endl;
}
int main()
{
test();
test(10);
test(10, 20);
system("pause");
return 0;
}
(3)顺序不同
#include<iostream>
using namespace std;
//函数重载
//1.作用域:当前测试函数都在全局作用域下
//2.函数名称都相同
//3.(1)顺序不同
void test(double a,int b)
{
cout << "test 的double a int b 函数调用" << endl;
}
void test(int a,double b)
{
cout << "test 的 int a double b 函数调用" << endl;
}
int main()
{
test(3.14, 2);
test(2, 3.14);
system("pause");
return 0;
}
注意:
注意const不能作为int等数据类型的重载条件
10是常量所以只能被有const引用的函数调用,变量b既可以被const引用函数调用,也可以被普通引用调用,但普通引用优先级高于const引用,所以优先被普通引用调用
会出现二义性,尽量避免出现这种情况