模板专题函数模板

Posted tinaluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板专题函数模板相关的知识,希望对你有一定的参考价值。

本系列属于长篇,有兴趣的可以慢慢参看(源于读书笔记和各种资料整理)

解决模板,主要为了C++11中的某些问题做个铺垫

在学习模板之前,首先想到自己的一个问题,有时候需要打印某些调试信息,除了使用一些专业的LOG工具外,一般情况下为了简单方便,就直接使用std::cout,比如

std::cout<<"参数i="<<i<<std::endl;

std::cout<<"消息值="<<msg<<std::endl;

每次写这么一行感觉特别多也烦琐,就想着有没有一个函数,能接受任意参数进行打印呢?当时的想法是这样的,

void g(参数...)

{

  std::cout<<参数<<std::endl;

}

调用的时候,直接使用g(实参)来调用,这样就可以省了很多语句。但是由于每种类型都不同,如果要实现这种功能,需要函数重载很多次,那么有没有一种万能类型,用一个函数对应所有可能呢?
模板的意义就出现了,模板可以实现一对多。下面正式进入主题。

函数模板

首先说模板,就像工厂的模具一样,我们认为它是【虚】的,虚的概念在程序设计中也许是高境界,虚可以对应一切。例如,void *,我记得从前有篇博客是这样写的,void *就好比人,而int *,char *等实际类型可以认为是男人和女人,
那么可以说,男人和女人是人,但是人不是男人和女人,因此,int*可以直接转化为void*,翻译过来就是男人是人。这段表达让我一直以来记忆犹新,写的非常棒。

那么回到模板,模板也是一种的概念,对于函数模板来说,它代表一个函数家族。也就是说,一种类型可以泛化出各种类型。这是函数模板的初步认识,它是虚的。


 

以上是关于模板专题函数模板的主要内容,如果未能解决你的问题,请参考以下文章

DEDECMS专题模板怎么做啊?

C++入门C++ 函数模板&类模板

C++中函数模板和模板函数的区别

C++模板(函数模板/类模板)

C++模板(函数模板/类模板)

类模板模板类函数模板模板函数