【C++】认识模版函数

原创 2016年05月30日 17:18:00

    模板是泛型编程的基础。所谓泛型编程就是编写与类型无关的逻辑代码,是一种复用的方式。模板分为模板函数和模板类。

    首先,我们不使用模版函数,该函数用来实现比较两个数是否相等。

bool IsEqual(int left, int right)//--->int型
{
    return left == right;
}

bool IsEqual(const string& left, const string& right)//-->string型
{
    return left == right;
}

    若直接这样实现,我们可以看出,两者不同类型我们就要实现两次,而这样的代码相似度又很高,就是说冗余的代码会使得编译器不易维护。


    下面,我们来看一个模版函数,就可以避免这样的问题。


#include<iostream>
using namespace std;
#include<string>

template <class T>
bool IsEqual(const T& left, const T& right)
{
    return left == right;
}

template<class T1,class T2>
bool IsEqual(const T1& left,const T2& right)
{
    return left == right;
}

bool IsEqual(const string& left, const string& right)
{
    return left == right;
}


void Test()
{
    string s1("s1");
    string s2("s2");
    cout << IsEqual(s1, s2) << endl;
    cout << IsEqual(1, 1) << endl;
    cout << IsEqual<int>(1, 1.2) << endl;
    cout << IsEqual<double>(1, 1.2) << endl;
}


本文出自 “Han Jing's Blog” 博客,请务必保留此出处http://10740184.blog.51cto.com/10730184/1750368

《Effective C++》:条款48:认识template元编程

认识template元编程
  • KangRoger
  • KangRoger
  • 2015年03月14日 22:05
  • 1201

C++ Template 基础篇(一):函数模板

C++ Template 基础篇(一):函数模板Template所代表的泛型编程是C++语言中的重要的组成部分,我将通过几篇blog对这半年以来的学习做一个系统的总结,本文是基础篇的第一部分。C Te...
  • lezardfu
  • lezardfu
  • 2017年02月24日 19:40
  • 2458

C++函数模板及实现原理

C++为我们提供了函数模板机制。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。 凡是函数体相同的函数都可以用这个模板来代替...
  • baidu_28312631
  • baidu_28312631
  • 2015年08月25日 12:50
  • 6266

C++模板:函数模板和模板函数

1.函数模板的声明和模板函数的生成 1.1函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计。它的最大特点是把函数使用的数据类型作为参数。 ...
  • BeyondHaven
  • BeyondHaven
  • 2009年05月20日 17:08
  • 122387

c++函数模板做参数

模板分为函数模板和类模板 今天我们来说说函数模板。 一:函数模版定义形式 template 类型形式参数表为: typename T1,typenameT2,......typenameTn 或...
  • sum_TW
  • sum_TW
  • 2016年12月04日 16:14
  • 1764

vs C2995 Bug 类模板出错

解决方案: 把模版的声明和实现放在一个文件下 ========================================================== 出错信息: 1>------ 已...
  • huixingshao
  • huixingshao
  • 2016年08月29日 13:42
  • 1033

C++模板之函数模板

泛型编程 编写与类型无关的逻辑代码,是代码复用的一种手段。模板是泛型编程的基础 模板 代表一个函数家族,该函数与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本(它本身不是类或函...
  • ADDw1
  • ADDw1
  • 2017年03月18日 10:39
  • 426

C++ - 可变参数函数模板(Variadic Function Template) 详解 及 代码

可变参数函数模板(Variadic Function Template) 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/det...
  • u012515223
  • u012515223
  • 2013年12月02日 17:19
  • 6332

C++ 模版函数 深入浅出

假设我们是一个实验室的学生,实验室老板喊你写一个排序算法排序一个int数组 当然,以我们的聪明才智,很快的就写好了这个函数: bool cmp(const int& a,const int& b) ...
  • codedoctor
  • codedoctor
  • 2017年07月24日 20:12
  • 82

C++ 模版函数

从一个简单的模板函数实例说起/*implement strcmp-like generic compare function returns 0 if the values are equal, ...
  • u010936800
  • u010936800
  • 2015年03月17日 10:46
  • 283
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【C++】认识模版函数
举报原因:
原因补充:

(最多只允许输入30个字)