如果两个函数参数表相同,名称相同,返回类型不同,不能过程重载。如:
int a=f(); double a=f(); //错误,无法重载
void f(short i); void f(double d); f('a'); f(2); f(2L); f(3.2); //重载
Stach(int size,int initQuantit=0); //Stach(1,1);Stach(1);都可以
int harpo(int n,int m=4,int j=5);//默认参数必须从右边开始写 int chico(int n,int m=6,int j);//不合理 int groucho(int k=1,int m=2,int n=3); beeps=harpo(2); beeps=harpo(1,8); beeps=harpo(8,7,6);
//a.h文件 void f(int i,int j=0);//函数原型
//.cpp文件 #include"a.h" #include<iostream> using namespace std; void f(int i,int j){ //void f(int i,int j=0){这句话会报错,j=0只能在.h文件里的函数原型做,不能在.cpp里做 cout<<i<<" "<<j<<endl; }
//main.cpp文件 #include"a.h" int main() { f(10); return 0; }
一般情况下,不建议使用default value(默认参数)