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)

相关推荐

  • Redis的java客户端Jedis的代码怎么写

    技术Redis的java客户端Jedis的代码怎么写这篇文章将为大家详细讲解有关Redis的java客户端Jedis的代码怎么写,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了

    攻略 2021年10月20日
  • 安装完mysql怎么使用(mysql怎么在第一步安装)

    技术mysql怎么样进行安装这篇文章主要为大家展示了“mysql怎么样进行安装”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql怎么样进行安装”这篇文章吧。一、下载安装

    攻略 2021年12月20日
  • Python包装不上怎么解决

    技术Python包装不上怎么解决本篇内容介绍了“Python包装不上怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成

    攻略 2021年11月29日
  • vue自定义指令设置(vue自定义指令在什么场景使用)

    技术vue中自定义指令怎么用小编给大家分享一下vue中自定义指令怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、v-drag需求:鼠标拖动元素思路:元素偏移量 = 鼠标滑动后的坐标 - 鼠标初始

    攻略 2021年12月16日
  • 香港VPS与云服务器:哪个是您的正确选择

    技术香港VPS与云服务器:哪个是您的正确选择与传统香港服务器相比,如果搭建简单的是一些结构简单的小型网站,从成本的角度考虑,香港VPS和香港云服务器都具有明显的优势。但是你如何在它们之间做出选择呢?VPS和云主机一样吗?

    礼包 2021年10月20日
  • 加拿大动物,加拿大的代表动物是什么

    技术加拿大动物,加拿大的代表动物是什么加拿大的国兽,海狸(英语叫BEAVER),也叫河狸,它是一种躯体肥胖的啮齿类动物,外型酷似大老鼠。海狸身上有两宝,一种是用于制作香水的原料,属于海狸性腺分泌的液体;另一种是海狸油光水

    生活 2021年10月27日