第十四章:模版(一)
作者:互联网
函数模版
我们可以使用template
关键字引入模版,比如
template <typename T>
void fun(T input)
{
}
typename
关键字可以替换为class
,含义相同
函数模版中包含了两对参数:函数形参/实参;模版形参/实参
函数模版需要进行显式实例化,比如
fun<int>(3);
关于显式实例化,需要知道以下几点:
- 实例化会使得编译器产生相应的函数(函数模版并非函数,不能调用)
- 模版函数在编译期的两阶段处理
- 模版语法检查
- 模版实例化
- 模版必须在实例化时可见->模版的翻译单元级的一处定义原则(不同于普通函数的程序级的一处定义原则)
- 注意函数模版与内联函数的区别
最后我们来讨论一个概念-函数模版的重载
template <typename T>
void fun(T)
{
}
template <typename T, typename T2>
void fun(T input1, T2 input2)
{
}
标签:函数,模版,void,fun,实例,template,第十四章 来源: https://blog.csdn.net/weixin_39061796/article/details/120658707