SOUI官方论坛

 找回密码
 立即注册
查看: 618|回复: 4

类模板基础讲解

[复制链接]
  • TA的每日心情
    开心
    昨天 09:38
  • 签到天数: 265 天

    [LV.8]以坛为家I

    474

    主题

    1135

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    15767
    发表于 2019-11-25 17:44:42 | 显示全部楼层 |阅读模式
    类模板

    类模板与函数模板类似,都可以通过模板实例化类来满足我们对不同场景的需要。声明类模板的方式与函数模板一致:

    template<typename T>
    class Stack
    {
            //...
    };

    在上面的例子中typename指后面的T是一个待定的类型。当我们使用这个类创建对象的时候,便可使用尖括号<和>来传入参数,例如:

    Stack<int> stack;

    在上面的代码中我们就得到了一个int版本的Stack类,然后利用这个类我们又创建出了stack对象(注意大小写)。注意:在使用类模板的时候,是不可以像函数模板那样自动推导出类型的。所以我们必须要像上面的例子一样用尖括号显式地传入模板参数。

    除了typename的参数模板之外。我们还可以定义其他的模板参数,例如可以以int类型作为模板参数:

    template<typename T, int max_size>
    class Stack
    {
    private:
            T* data_[max_size];
            int count_;
    };

    对应地,声明对象的时候便需要添加一个参数,例如:

    Stack<int, 15> stack;

    完整代码如下:
    游客,如果您要查看本帖隐藏内容请回复



  • TA的每日心情
    慵懒
    2020-9-18 04:24
  • 签到天数: 52 天

    [LV.5]常住居民I

    3

    主题

    50

    帖子

    234

    积分

    02:00元婴期

    Rank: 3Rank: 3

    积分
    234
    发表于 2020-8-12 01:17:01 | 显示全部楼层
    类模板基础讲解
  • TA的每日心情

    2020-12-10 08:37
  • 签到天数: 78 天

    [LV.6]常住居民II

    0

    主题

    31

    帖子

    782

    积分

    04:00化神期

    Rank: 4

    积分
    782
    发表于 2020-8-12 14:08:25 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-10-27 10:33
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    13

    主题

    44

    帖子

    185

    积分

    24:00金丹期

    Rank: 2

    积分
    185
    发表于 2020-10-8 22:26:06 | 显示全部楼层
    看看,学习下,一直在基础里面潜水,是时候去高出看看了
  • TA的每日心情
    奋斗
    昨天 09:49
  • 签到天数: 117 天

    [LV.6]常住居民II

    1

    主题

    18

    帖子

    1584

    积分

    06:00合体期

    伴坛终老

    Rank: 6Rank: 6

    积分
    1584
    发表于 2020-10-20 13:43:35 | 显示全部楼层
    东风夜放花千树,更吹落,星如雨。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|SOUI官方论坛 ( 粤ICP备18103663号-2 )

    GMT+8, 2021-1-19 20:31

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表