C++函数模板和模板函数、类模板和模板类

简介这期间有涉及到函数模板与模板函数,类模板与模板类的概念 (类似于类与类对象的区别) 注意:模板类的函数声明和实现必须都在头文件中完成,不能像普通类那样声明在.h文件中,实现在.cpp文件中。 1、函数模板和模板函数 函数模板:函数模板的重点是模板。表示的是一个模板,专门用来生产函数。 template <typename T>  void fun(T a) {  }  模板函数:是函数模板的实例化,是一个函数。 fu

这期间有涉及到函数模板与模板函数,类模板与模板类的概念 (类似于类与类对象的区别)
注意:模板类的函数声明和实现必须都在头文件中完成,不能像普通类那样声明在.h文件中,实现在.cpp文件中。

1、函数模板和模板函数

函数模板:函数模板的重点是模板。表示的是一个模板,专门用来生产函数。
template <typename T> 
void fun(T a)

模板函数:是函数模板的实例化,是一个函数。
fun(7);//隐式生成fun <int> 
fun(3.9);//隐式生成fun <double> 
fun(‘b’);//隐式生成fun <char> 
Shape* ps   =   new  Cirlcle; 
fun(ps);//隐式生成fun <Shape*> 

2、类模板和模板类

类模板:类模板的重点是模板。表示的是一个模板,专门用于产生类的模子。
template <typename T> 
class Vector 

}; 

模板类:类模板的实例化,是一个包含具体数据类型的类

函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化必须由程序员在程序中显式地指定。即函数模板允许隐式调用和显式调用而类模板只能显示调用。

本文转自:https://blog.csdn.net/apacat/article/details/89945878

文章评论

    区别

        2020-10-03    

    1.类模板没有自动类型推导;
    2.类模板在模板参数列表中可以有默认参数;
评论列表
区别