#includeusing namespace std; void sub(int x,int y) { cout <<"x+y = "< 2:同一作用域中同名函数重载,不同作用域中同名函数遵循标识符隐藏 #includeusing namespace std; namespace n1 { void out(int x,int y) { cout<<"n1::out"< 3:不完全匹配规则 完全匹配>常量转换>升级转换>标准转换>自定义转换>省略匹配
#includeusing namespace std; void out(int x,int y)//完全匹配 { cout<<"1"< 缺省参数 1:为函数的参数指定缺省值,当调用该函数时未指定实参,则使用与该实参对应的形参取缺省值 2:若函数中某个参数有缺省值,该参数后续参数都必须有缺省值 3:不可因缺省参数导致重载匹配歧义 4:函数参数的缺省值只可在函数声明中指定(声明定义在一起的也可以) #includeusing namespace std; void yayuan(int a,double b=6.12,float c=6.1); void yayuan(int a,double b,float c) { cout<<"a="< 哑元参数 · 只指定参数类型而不指定参数名称的函数(保证函数向下兼容,形成函数的重载版本) #includeusing namespace std; void out(int) { cout<<"out(int)"< 内联函数 1:减少函数调用的开销 · 普通函数调用语句发生跳转操作,带来时间消耗 · 内联用函数已被编译好的二进制代码,替代对该函数的调用指令 2:内联使可执行文件的体积和进程代码的内存变大,只有频繁调用的简单函数适合内联 3:若函数在声明中直接定义,自动被优化为内联,否则可在声明处加上inline关键字 4:inline仅表示希望该函数被优化为内联,是否适合内联完全由编译器决定 5:不频繁被调用的复杂函数和递归函数不适合内联 #includeusing namespace std; inline void out(int x); void out(int x) { cout<<"out"<



