C++ STL编程学习(三)

前言

好久不见,甚是想念。有一段时间没有法发过博客了,之前那段时间自我感觉比较颓废,就硬是打不起精神,STL也没管了,自己学校的学习也比较马虎,再之后就又是要赶一堆复习啊,ddl之类的,所以不知不觉时间就过去了许久。今天再次想要重新填STL的坑,竟是忘记了自己做到了哪里,之前学了什么,好在能在之前的博客里重拾记忆,继续新的填坑之旅。
在上一篇中的内容是函数模板,今天我们继续推进,讲类模板。

类模板

函数模板就是把函数类型参数化了,类模板则也是一样的。

单个类模板的语法

template<class T>
class Person{
public:
    Person(T id,T age){
        this->mAge = age;
        this->mId = id;
    }

    void Show() {
        cout << "ID:" << mId << "Age:" << mAge << endl;
    }
    T mId;
    T mAge;
};

void  test01() {

    //函数模板调用的时候,可以自动类型推导
    //类模板必须显式指定类型
    Person<int> p(10,20);
    p.Show();
}

就创造了单个的类模板,这里由于类模板必须显式指定类型,所以用了< int >,表示这个person是int类型的

类模板派生类与类模板派生类模板

类模板派生类

template<class T>
class Person{
public:
    Person(){
        mAge = 0;
    }
    T mAge;
};
//下面之所以要加<int>是因为要在类区定义对象的话,需要分配内存,所以需要指定类型
class SubPerson: public Person<int>{};

类模板派生类模板

template<class T>
class Animal{
public:
    void bark(){
        cout << mAge << "岁动物在叫:" << endl;
    }
    T mAge;
};

template <class T>
class Cat: public  Animal<T>{};
//这里的参数列表由类模板给出,所以就不需要再指定类型了
int main(void)
{
    Cat<int> cat;
    return 0;
}

结束

重拾之前的就业,感觉的确今天写的内容与质量不高了。最近一段时间都会采取这样比较短幅的方式来记录知识点,今后会慢慢找回状态。之后还有学校布置的MFC学习任务,还有Qt啊,数模啊。balabalabala。。。挖的坑太多了,害,慢慢填吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值