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)

相关推荐

  • JavaScript中var与let的区别是什么

    技术JavaScript中var与let的区别是什么本篇文章给大家分享的是有关JavaScript中var与let的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小

    攻略 2021年12月8日
  • 上传附件,请问视频文件能上传附件吗

    技术上传附件,请问视频文件能上传附件吗可以进行压缩后再上传。方法如下上传附件:1、首先将自己需要压缩的视频文件准备好,放置到同一个文件夹中,方便添加文件。
    2、将视频压缩软件安装到自己的电脑中,打开软件找到视频压缩,点击

    生活 2021年10月25日
  • 怎么优化JS代码

    技术怎么优化JS代码这篇文章主要讲解了“怎么优化JS代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么优化JS代码”吧!1、字符串的拼接 字符串的拼接在我们开发中会经

    攻略 2021年11月18日
  • 怎么在Ubuntu 18.04服务器上安装TensorFlow

    技术怎么在Ubuntu 18.04服务器上安装TensorFlow小编给大家分享一下怎么在Ubuntu 18.04服务器上安装TensorFlow,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读

    攻略 2021年11月18日
  • 复杂的数据需求的MySQL方案是怎样的

    技术复杂的数据需求的MySQL方案是怎样的今天就跟大家聊聊有关复杂的数据需求的MySQL方案是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 前些天处理

    攻略 2021年11月16日
  • mysql中授权和撤销授权等命令怎么用

    技术mysql中授权和撤销授权等命令怎么用小编给大家分享一下mysql中授权和撤销授权等命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧

    攻略 2021年10月29日