【C++】模板类、特化以及偏特化!!!

模板类的定义和模板函数的定义类似,同样是已template的形式定义的。举个栗子:templateclass Example{public: Example() :data(NULL) {} Example(const T& d) :data(d) {} ~Example() {}private: T* data;};注意:在模板参数列表里面使用class和
摘要由CSDN通过智能技术生成

模板类的定义和模板函数的定义类似,同样是已template<typename T1,typename T2,...>的形式定义的。

举个栗子:

template<class T>
class Example
{
public:
	Example()
		:data(NULL)
	{}
	Example(const T& d)
		:data(d)
	{}
	~Example()
	{}
private:
	T* data;
};
注意:在模板参数列表里面使用class和typename效果是一样的,即可以使用class来替换typaname。


同样,在调用的时候模板类直接实例化出来这个模板类的对象,和模板函数里面是一样的,模板类只是一个模板,在调用的时候才会创建出来所需要的类型的对象。

例如:

int main()
{
	Example<int> a1;
	Example<char> a2;
	Example<string> a3;
	return 0;
}
上面的代码分别创建了三个不同的类型的对象------>当模板类被调用的时候模板类就会根据所调用类型进行实例化,和模板函数的调用类似。

注:模板类和模板函数最大的区别就是在模板类里面可以将模板参数设置成带缺省的参数,但是在模板函数里面是不可以定义带缺省的参数的模板函数的。

模板类的特化:
   在模板类里面同样存在的模

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值