模板技巧知识

1.typename

  指示 依赖于模板参数的名字是一个类型

例子:

typename T::const_iterator pos;

2.  .template

 指示 前面存在依赖于模板参数的对象

3.成员模板

a.嵌套类

b.成员函数模板

template <typename T>

class stack

{

public:

     template <typename T1>

   void operator= (stack<T1> cosnt & );

};

template <typename T>

template <typename T1>

void stack<T>::operator= (stack<T1> const &a )

{



}

3.模板的模板参数

只有在类模板才能使用,函数模板不支持

简而言之 就是模板参数是个模板(该模板参数必须是个类类型)


template <typename T ,typename T2>

class stack{

private:

   T2 elem;

}


stack<int,vector<int> >



对比模板的模板参数


template <typename T, template <typname T2,typename T3=std::allocator<ELEM> > class CONF =std::vector  >

class stack

{

}


stack<int,list> 就可以了

3.模板参数和模板实参

 template 后的参数 即为 模板参数(template paramete)

 传递模板实参使之成为模板参数

 显示替换

 template <typename T>

class stack{};

stack<int> a;

stack<stack<int> > b;



模板参数成为模板实参

template <typename T>

class A{

private :

   stack<T>  elem;

}


模板实参是要求编译期可以确定的模板实体和值


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值