【高频面试题】
1.下面两个函数能形成函数重载吗 ? 有问题吗或者什么情况下会出问题 ?
void TestFunc(int a = 10)
{
cout << "void TestFunc (int) " << endl;
}
void TestFunc(int a)
{
cout << "void TestFunc(int) " << endl;
}
2.C语言中为什么不能支持函数重载 ?
3.C++中函数重载底层是怎么处理的 ?
4.C++中能否将─个函数按照C的风格来编译 ?
这些问题,相信大家看完博客后心中就会有答案。
函数重载
有趣的小故事:自然语言中,一个词可以有多重含义,人们可以通过上下文来判断该词真实的含义,即该词被重载了。
比如 : 以前有一个笑话,国有两个体育项目大家根本不用看,也不用担心。一个是乒乓球,一个是男足。前者是“谁也赢不了!”(谁也 / 赢不了),后者是"谁也赢不了!”(谁/也赢不了)(中华文化真是博大精深,这里断句也不一定对,小伙伴们可以自己试试)
函数重载的概念
函数重载是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数或类型或顺序)必须不同,常用来处理实现功能类似数据类型不同的问题
举例:
#include<iostream>
using namespace std;
int Add(int x, int y)
{
return x + y;
}
double Add(double x, double y)
{
return x + y;
}
long Add(long x, long y)