C++模板使用方法是什么

技术C++模板使用方法是什么本篇文章为大家展示了C++模板使用方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++编程语言中的模板应用在一定程度上大大提高了程序开发的效

本文向您展示了如何使用C模板。内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。

C语言中模板的应用在一定程度上大大提高了程序开发的效率。让我们详细解释一下C模板的基本概念。

前段时间重新学习了C,主要是看C编程思想和C设计新思维。更好地理解模板的使用,总结如下:

下面列出了c模板的常见情况:

1. C++模板类静态成员

templatetypenamestructetstclass { static int _ data;};templateintestclasschar : _ data=1;templateintestclasslong : _ data=2;int main(void){ coutboolalpha(1==testclasschar : _ data)endl;coutboolalpha(2==testclasslong : _ data)endl;}2. C++模板类偏特化

templateclassI,class ostructtestclass { test class(){ cout ' I,O 'endl}};templateclassTstructtestClassT *,T * { TestClass(){ cout T *,T * ' endl}};template classtructetstclassconst *,T * { test class(){ cout ' const *,T * ' endl}};intmain(void){testClassint,charobj1testClassint*,int * obj2testClassconstint *,int * obj3}3.类模版+函数模版

p>

  1. template < class T> struct testClass   

  2. {   

  3. void swap( testClass< T>& ) { cout < <  "swap()" < <  endl; }   

  4. };   

  5. template < class T> inline void swap( testClass< T>& x, 
    testClass< T>& y )   

  6. {   

  7. x.swap( y );   

  8. }   

  9. int main( void )  

  10. {   

  11. testClass< int> obj1;   

  12. testClass< int> obj2;   

  13. swap( obj1, obj2 );   

4. 类成员函数模板

struct testClass  {   template < class T> void mfun( const T& t )  {   cout < <  t < <  endl;   }   template < class T> operator T()   {   return T();   }   };   int main( void )   {   testClass obj;   obj.mfun( 1 );   int i = obj;   cout < <  i < <  endl;   }

5. 缺省C++模板参数推导

template < class T> struct test   {   T a;   };   template < class I, class O=test< I> > struct testClass   {   I b;   O c;   };   void main()  {  }

6. 非类型C++模板参数

template < class T, int n> struct testClass {   T _t;   testClass() : _t(n) {   }   };   int main( void ) {   testClass< int,1> obj1;   testClass< int,2> obj2;   }

7. 空模板参数

  1. template < class T> struct testClass;   

  2. template < class T> bool operator==( const testClass< T>&, 
    const testClass< T>& )   

  3. {   

  4. return false;   

  5. };   

  6. template < class T> struct testClass   

  7. {   

  8. friend bool operator== < >
    ( const testClass&, const testClass& );   

  9. };   

  10. void main()  

  11. {  

8. template template 类

struct Widget1   {   template< typename T>   T foo(){}   };   template< template< class T>class X>   struct Widget2  {   };   void main()  {  cout< <  3 < <  '\n';  }

上述内容就是C++模板使用方法是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/52397.html

(0)

相关推荐

  • 10款好用的MySQL GUI工具分别是什么

    技术10款好用的MySQL GUI工具分别是什么这篇文章将为大家详细讲解有关10款好用的MySQL GUI工具分别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。My

    攻略 2021年11月29日
  • 滥竽充数的道理,滥竽充数告诉我们什么道理

    技术滥竽充数的道理,滥竽充数告诉我们什么道理滥竽充数讲的是战国时有个国军齐宣王喜欢听乐队演奏滥竽充数的道理,而且人越多合奏越觉得气派动听。根本不懂音乐的南郭先生了解了齐宣王的喜好,蒙混到合奏队伍之中,假模假式的吹的很卖力

    生活 2021年10月26日
  • 顺序栈的操作

    技术顺序栈的操作 顺序栈的操作#includestdio.h
    #includemalloc.h
    #includestdlib.h
    #define MAXSIZE 100
    typedef int SEle

    礼包 2021年11月7日
  • 如何重新安装COM

    技术如何重新安装COM这篇文章主要介绍了如何重新安装COM,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  1.在Windows桌面上,单击“开始”,然后

    攻略 2021年12月8日
  • 怎么理解python内置数学模块math

    技术怎么理解python内置数学模块math本篇文章为大家展示了怎么理解python内置数学模块math,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python内置数学模块ma

    攻略 2021年10月22日
  • ibatis框架和mybatis框架(ibatis接口mapper怎么写)

    技术如何解析iBATIS DAO框架如何解析iBATIS DAO框架,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。iBATIS DAO框架的书写方便,项目采

    攻略 2021年12月18日