1.剖析C++是如何实现重载的?
在c++中,同名的函数可以完成不同参数列表,可同可不同的返回值的函数。
例如:
int Add(int a,int b)
{
return a+b;
}
double Add(double a,double b)
{
return a-b;
}
int main()
{
cout<<"10"<<"+"<<"20"<<"="<<Add(10,20)<<endl;
cout<<"3.14"<<"-"<<"1.11"<<"="<<Add(3.14,1.11)<<endl;
}
//同名函数可有三种情况进行重载:
//1.参数类型不同
//2.参数的个数不同
//3.以上两点兼有
void print_age(int age = 10)//10即为缺省参数
{
cout<<"age="<<age<<endl;
}
int Add(int a = 0,int b = 0)//全缺省
int Add(int a = 0,int b)//错误的情况
int Add(int a,int b = 0)//正确,缺省必须从右向左缺省
2.解析面试题:在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明?在C语言环境下,函数调用规则是将函数名前加下划线,例如fun(),编译时就是_fun(),然而在c++编译调用函数时,是有关函数参数的编译,
加extern “c”是为了让c++环境下使用C语言调用函数规则,而不是使用c++函数调用规则。