跟我学c++中级篇——类模板

论坛 期权论坛 期权     
太平洋工作室   2019-7-7 23:04   925   0

[h1]一、类模板介绍[/h1]在初级篇的类的扩展中,对模板类进行了初步的介绍,今天将对类模板进行一系列比较深入的学习。在开始接触模板时候,经常听到“类模板”和“模板类”两个名词。首先要澄清“模板”本身的内含,模板本身指的是一组类似操作行为,所以可以衍生出函数模板和类模板。而在实际应用过程,一个模板却不能同时展现这些操作,需要实例化成某个具体的操作。即展现为模板类(模板函数这个概念是不严格的,但不要较真)。在常见的BOOST和STL库中,大量的应用了类模板。
[h1]二、定义[/h1]先看一下cppreference的定义:
  1. template < 形参列表 > 类声明    (1)export template < 形参列表 > 类声明    (2) (C++11 前)
复制代码
类声明:即声明的类名成为模板名。形参列表:以逗号分隔的非空的模板形参列表,其必须为非类型形参、类型形参、模板形参或任何这些形参的形参包之一。同样,再来一个比较接地气的声明:
  1. //typename可以用class来替代template class 类名称{   类体;}
复制代码
看定义再清楚也不如来个例子明白,先看一个简单的模板类的例子:
[code]templateclass Common{public:    Common(T t, U u)    {        this->t_ = t;        this->u_ = u;    }    ~Common() {}public:    T GetT() { return t_; }    U GetU() { return u_; }private:    T t_;    U u_;};int main(){    Common com(10,100);    int t = com.GetT();    int u = com.GetU();    std::cout
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:5
帖子:1
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP