C++ 学习十一 函数重载 与函数模板

使用默认参数:

默认值可以在函数原型或者定义中给出,不能在两个位置同时出现

对于带参数列表的函数,必须从右向左添加默认值

void test1(int a=1,int c=b,int c=5); 是可以的,调用例如 test1(1,2); test(5,6,7);

void test2(int a=2,int b,int c=3); 是错误的

函数重载的规则:

函数名称必须相同

参数列表必须不同,(参数的个数不同、类型不同、或顺序不同)

函数的返回类型可以相同也可以不同

仅仅返回类型不同 不足以成为函数的重载

函数重载:

指可以有多个同名的函数

函数名相同,参数列表不同(特征标不同)

重载----编译器在编译时,根据参数列表对函数进行重命名,为避免混乱,编译器把类型引用和类型本身视为同一个特征标

调用匹配函数时,不区分const和非const变量

 

 函数模板:

函数定义时不指定具体的数据类型(使用虚拟类型代替)

函数被调用时编译器根据实参反推数类型-类型的参数化

 

//模板头与函数声明、定义永远是不可分割的整体!
template <typename 类型参数1,typename 类型参数2 ......>
返回值类型 函数名(形参类表){
   
      // 在函数体中可以使用类型参数
}
//函数声明
template<typename T>
void Swap(T&,T&);

/**
 * 使用模板技术实现变量交换值
 */
template<typename T>//模板头
void Swap(T &a, T &b)
{
    T temp=a;
      a=b;
      b=temp;
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值