c++一些语法模板
2015-07-05 20:15
411 查看
函数模板特
类模板的特化
依据前面一个模板确定当前的模板參数
模板与友元的绑定
内联函数模板
模板内部指定类型
非类型模板形參
template <class T> int compare(T v1,T v2) { if(v1<v2) return -1; else if(v1>v2) return 1; else return 0; } template <> int compare<char *>(char * s1,char * s2) { return strcmp(s1,s2); }
类模板的特化
template <class T> class test { public: void operator()() { cout<<"test<T>"<<endl; } }; template <> class test<char> { public: void operator()() { cout<<"test<char>"<<endl; } };模板的偏特化
template <class T,class O> struct testClass { testClass(){cout<<"I,O"<<endl;} }; template <class T> struct testClass<T *,T *> { testClass(){cout<<"T*,T*"<<endl;} };成员模板
template <class T> class v { public: template <class T1> void insert(int position ,T1 t) { cout<<"insertion"<<endl; } };
依据前面一个模板确定当前的模板參数
template <class T,class S=vector<T> > class test { public: test(){cout<<"test"<<endl;} private: S t; }
模板与友元的绑定
template <class T> class Queue { friend bool operator == <T> (const Queue <T> &t1,const Queue <T> &t2) { cout<<"T,T"<<endl; return true; } };
内联函数模板
inline template <typename T> T min(const T& a,const T & b) { return a<b?a:b; }注意inline 和template的位置不能互换
模板内部指定类型
template <class T> class test { public: typename T::size_type t; //模板内部定义类型 };
非类型模板形參
template <class T,size_t N> void arr(T (¶) ) { int i=0; for(i=0;i<N;i++) cout<<para[i]<<endl; };
相关文章推荐
- C++ 随笔 知识点 Sendmessage,FindWindow,keybd_event
- C语言-输出彩色字体
- C++ 函数对象
- c++ primer读书笔记-第八章 标准IO库
- 【学习笔记】【C语言】static和extern对变量的作用
- 【学习笔记】【C语言】static和extern对函数的作用
- C++基于该模型模板包括节目外实例
- C语言中的位操作
- C语言学习笔记:14_内部函数和外部函数
- C++知识点随笔(一):this指针、拷贝构造函数、初始化列表
- 从C语言角度看OC编程里类、类对象
- C语言学习笔记:13_变量和函数的声明与定义
- C语言学习笔记:12_变量的存储方式和生存期
- 【C语言】printf函数和scanf函数典型例子
- C语言-共用体
- C++11初探
- 【C++】通用单链表
- c++ const 类型转化初始化
- 【C/C++学习笔记】memmove()、memcpy()、memccpy()、strcpy()函数整理
- C++一些注意事项