1 #include<iostream>
2 using namespace ::std;
3 int square(int x);
4 float square(float y);
5 double square(double x);
6 int main()
7 {
8 square(5);
9 square(1.5);
10 square(2.5f);
11 return 0;
12 }
13
14
15 int square(int x)
16 {
17 cout<<__FILE__<<__LINE__<<__func__<<endl;
18 return x*x;
19
20 }
21
22 float square(float x)
23 {
24 cout<<__FILE__<<__LINE__<<__func__<<endl;
25 return x*x;
26
27 }
结果;
overload.cpp17square
overload.cpp31square
overload.cpp24square
函数重载有如下的规则:
- 名字相同,形参类型不一样,形参个数也可以不一样。
- 不允许两个函数除了返回类型外其他所有的要素都相同。
- 顶层
const
的形参无法和没有顶层const
的形参区分。
其中返回类型不同时编译时会出错,而类型别名、项层const
、省略形参名字只是重复声明而已,只要不定义,编译就不会出错,比如: