1.函数的默认参数定义
#include <iostream>
#include <string>
using namespace std;
int func(int a, int b, int c=10);
int main()
{
func(10,20);
system("pause");
return 0;
}
//不能在预定义和函数定义处同时设置默认值
int func(int a, int b, int c)
{
return a+b+c;
}
2.函数的重载
C++函数重载的方式与Java大体相同,可以去参考一下
#include <iostream>
#include <string>
using namespace std;
//函数重载
//可以让函数名相同,提高复用性
//函数重载的满足条件
//1.同一个作用域下
//2.函数名称相同
//3.函数参数类型不同,或者个数不同,或者顺序不同
void func()
{
cout<<"func的调用"<<endl;
}
void func(int a)
{
cout<<"func (int a) 的调用"<<endl;
}
void func(double a)
{
cout<<"func (double a) 的调用"<<endl;
}
int main()
{
func(10.0);
}
3.函数重载注意事项
1)引用作为重载条件
2)函数重载遇到默认参数
#include <iostream>
#include <string>
using namespace std;
//1.引用作为重载的条件
void func1(int &a)
{
cout<<"func1(1)调用"<<endl;
}
void func1(const int &a)
{
cout<<"func1(2)调用"<<endl;
}
//2.函数重载碰到默认参数
void func2(int a,int b=10)
{
cout<<"func2(1)的调用"<<endl;
}
void func2(int a)
{
cout<<"func2(2)的调用"<<endl;
}
int main()
{
int a=10;
func1(a);
func1(10);
//func2(10); 当函数重载碰到默认参数,出现二义性,尽量避免
func2(10,20);
system("pause");
return 0;
}