模板技巧知识

来源:互联网 发布:淘宝客返利源码下载 编辑:程序博客网 时间:2024/06/10 17:25

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;

}


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


原创粉丝点击