函数重载
- 函数名可以相同, 提高复用性
函数重载的条件
- 同一个作用域下
- 函数名相同
- 函数参数不同
– 参数个数不同
– 参数顺序不同
– 参数类型不同 - 不可以使用返回值作为重载的条件
code:
#include<iostream>
using namespace std;
void test()
{
cout << "void test()" << endl;
}
void test(int a)
{
cout << "void test(int a)" << endl;
}
void test(int a, float b)
{
cout << "void test(int a, float b)" << endl;
}
void test(float a, int b)
{
cout << "void test(float a, int b)" << endl;
}
void main()
{
test();
test(100);
test(100, 3.14);
test(3.14, 100);
system("pause");
}
result:
void test()
void test(int a)
void test(int a, float b)
void test(float a, int b)
函数重载注意事项
引用作为重载
- 参数可以分为const和非const。
code:
#include<iostream>
using namespace std;
void test(int &a)
{
cout << "void test(int &a)" << endl;
}
void test(const int& a)
{
cout << "void test(const int& a)" << endl;
}
void main()
{
int a = 10;
test(a);
test(10); // 当执行void test(int &a) 则为int &a=10,会出错,const int& a=10,正常
system("pause");
}
result:
void test(int &a)
void test(const int& a)
函数重载遇到默认参数
code:
#include<iostream>
using namespace std;
void test(int a, int b = 10)
{
cout << "void test(int a, int b = 10)" << endl;
}
void test(int a)
{
cout << "void test(int a)" << endl;
}
void main()
{
//test(666); // 报错,不知道执行哪一个
test(20, 30);
system("pause");
}
result:
void test(int a, int b = 10)
文章来源地址https://www.toymoban.com/news/detail-661143.html
文章来源:https://www.toymoban.com/news/detail-661143.html
到了这里,关于C++系列-函数重载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!