函数重载  
 
 函数重载的条件  
同一个作用域下 函数名相同 函数参数不同  – 参数个数不同  – 参数顺序不同  – 参数类型不同 不可以使用返回值作为重载的条件   
code: # include <iostream> using  namespace  std; void  test ( ) { cout <<  "void test()"  <<  endl; } void  test ( int  a) { cout <<  "void test(int a)"  <<  endl; } void  test ( int  a,  float  b) { cout <<  "void test(int a, float b)"  <<  endl; } void  test ( float  a,  int  b) { cout <<  "void test(float a, int b)"  <<  endl; } void  main ( ) { test ( ) ; test ( 100 ) ; test ( 100 ,  3.14 ) ; test ( 3.14 ,  100 ) ; system ( "pause" ) ; } 
result: void  test ( ) void  test ( int  a) void  test ( int  a,  float  b) void  test ( float  a,  int  b) 
  
 函数重载注意事项  
 引用作为重载  
 
code: # include <iostream> using  namespace  std; void  test ( int  & a) { cout <<  "void test(int &a)"  <<  endl; } void  test ( const  int &  a) { cout <<  "void test(const int& a)"  <<  endl; } void  main ( ) { int  a =  10 ; test ( a) ; test ( 10 ) ; 		system ( "pause" ) ; } 
result: 
void  test ( int  & a) 
void  test ( const  int &  a) 
  
 函数重载遇到默认参数  
code: 
# include <iostream>  
using  namespace  std; void  test ( int  a,  int  b =  10 ) 
{ cout <<  "void test(int a, int b = 10)"  <<  endl; 
} 
void  test ( int  a) 
{ cout <<  "void test(int a)"  <<  endl; 
} void  main ( ) 
{ test ( 20 ,  30 ) ; system ( "pause" ) ; 
} result: void  test ( int  a,  int  b =  10 )