C++类模板、模板类(坚持更新c++内容的第14天)

本文探讨了C++中类模板的基础概念,包括模板声明、模板参数的限制以及类模板与模板类的区别。通过实例演示如何定义和使用类模板,如Vector模板类及其实例化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念

需要编写多个形式和功能相似的函数,因此有了函数模板。也需要编写多个形式和功能都相似的类,因此引入了类模板的概念。

C++ 中类模板的写法如下:

template <类型参数表>
class 类模板名{
   成员函数和成员变量
};

比如:
template <typename Type>
class ClassName{
public:

private:
   Type DataMember;
}

可以使用模板声明传递参数

在使用模板的时候,template<typename T>类似一个函数签名, 而T就是这个函数签名的形参, typename就是参数类型。typename表示该位置接受一个类型名作为参数。

template <typename T, int n>  //接受一个整型数据作为模板的参数
class Stack{
    private:
      static int num = 0;
      int cap;
      T sz[n]; //用接收到的数据初始化数组长度
}


// 注意模板参数只能接收整型,枚举,引用和指针类型的数据,并且在传入数据的时候,只能使用常量表达式传入数据。
Stack<int, 4> s;

 类模板和模板类

类模板的重点是模板。表示的是一个模板,专门用于产生类的模子。例子:

//类模板
template <typename T>
class Vector
{
   ....
};

//模板类,重点是类,类是由一个模板生成的类。
Vector<int>、Vector<char>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值