【C++基础】C++函数模板(二)

  我是小毛驴,转载请注明出处:http://blog.csdn.net/liulongling/article/details/50624029

 一、函数模版

   1.1什么是函数模板?

  c++提供了函数模板(function template.)所谓函数模板,实际上是建立一个通用函数, 其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板。凡是函数体相同的函数都可以用这个模板代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现不同函数的功能。

  • c++提供两种模板机制:函数模板和类模板
  • 类属 - 类型参数化,又称参数模板 使得程序(算法)可以从逻辑上抽象,把被处理的对象(数据)类型作为参数传递。

   1.2为什么用函数模板?

   1.3代码示例

//
//
//  Created by 刘龙玲
//  Copyright © 2016年 liulongling. All rights reserved.
//


#define using _CRT_SECURE_NO_WARNINGS
#include 

using namespace std;

void test02(int a,int b)
{
    int temp = a;
    a = b;
    b = temp;

    cout<<"a="<
void test01(T& a,T& b)
{
    T temp = a;
    a = b;
    b = temp;
    
    cout<<"a="<

   1.4 函数模板和普通函数的区别?

  • 函数模板不允许自动类型转化 
  • 普通函数能够自动进行类型转化

   1.5 函数模板和普通函数在一起调用规则:

  • 函数模板可以像普通函数那样可以被重载
  • c++编译器优先考虑普通函数
  • 如果函数模板可以产生一个更好的匹配,那么选择模板
  • 可以通过空模板实参列表的语法限定编译器只能通过模板匹配 

1.6 总结

  • 模板把函数或类要处理的数据类型参数化,表现为参数的多态性,成为类属。
  • 模板用于表达逻辑结构相同,但具体数据元素类型不同的数据对象的通用行为。
  • 用模板是为了实现泛型,可以减轻编程的工作量,增强函数的重用性。


你可能感兴趣的:(基础知识(C/C++))