日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C++模板常用使用方法介紹

C++編程語言中的模板應(yīng)用在一定程度上大大提高了程序開發(fā)的效率。我們?cè)谶@篇文章中為大家詳細(xì)講解一下有關(guān)C++模板的基本概念,希望初學(xué)者們可以通過本文介紹的內(nèi)容充分掌握這方面的知識(shí)。

10年專注成都網(wǎng)站制作,成都企業(yè)網(wǎng)站建設(shè),個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于成都企業(yè)網(wǎng)站建設(shè),高端網(wǎng)頁制作,對(duì)成都小攪拌車等多個(gè)方面,擁有豐富的網(wǎng)站維護(hù)經(jīng)驗(yàn)。

前段時(shí)間重新學(xué)習(xí)C++,主要看C++編程思想和C++設(shè)計(jì)新思維。對(duì)模版的使用有了更進(jìn)一層的了解,特總結(jié)如下:

下面列出了C++模板的常用情況:

1. C++模板類靜態(tài)成員

 
 
 
  1. template < typename T> struct testClass   
  2. {   
  3. static int _data;   
  4. };   
  5. template< > int testClass< char>::_data = 1;   
  6. template< > int testClass< long>::_data = 2;   
  7. int main( void ) {   
  8. cout < <  boolalpha < <  (1==testClass< char>::_data) < <  endl;   
  9. cout < <  boolalpha < <  (2==testClass< long>::_data) < <  endl;   
  10. }  

2. C++模板類偏特化

 
 
 
  1. template < class I, class O> struct testClass   
  2. {   
  3. testClass() { cout < <  "I, O" < <  endl; }   
  4. };   
  5. template < class T> struct testClass< T*, T*>   
  6. {   
  7. testClass() { cout < <  "T*, T*" < <  endl; }   
  8. };   
  9. template < class T> struct testClass< const T*, T*>   
  10. {   
  11. testClass() { cout < <  "const T*, T*" < <  endl; }   
  12. };   
  13. int main( void )   
  14. {   
  15. testClass< int, char> obj1;   
  16. testClass< int*, int*> obj2;   
  17. testClass< const int*, int*> obj3;   

3.類模版+函數(shù)模版

 
 
 
  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. 類成員函數(shù)模板

 
 
 
  1. struct testClass  
  2. {   
  3. template < class T> void mfun( const T& t )  
  4. {   
  5. cout < <  t < <  endl;   
  6. }   
  7. template < class T> operator T()   
  8. {   
  9. return T();   
  10. }   
  11. };   
  12. int main( void )   
  13. {   
  14. testClass obj;   
  15. obj.mfun( 1 );   
  16. int i = obj;   
  17. cout < <  i < <  endl;   

5. 缺省C++模板參數(shù)推導(dǎo)

 
 
 
  1. template < class T> struct test   
  2. {   
  3. T a;   
  4. };   
  5. template < class I, class O=test< I> > struct testClass   
  6. {   
  7. I b;   
  8. O c;   
  9. };   
  10. void main()  
  11. {  

6. 非類型C++模板參數(shù)

 
 
 
  1. template < class T, int n> struct testClass {   
  2. T _t;   
  3. testClass() : _t(n) {   
  4. }   
  5. };   
  6. int main( void ) {   
  7. testClass< int,1> obj1;   
  8. testClass< int,2> obj2;   

7. 空模板參數(shù)

 
 
 
  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 類

 
 
 
  1. struct Widget1   
  2. {   
  3. template< typename T>   
  4. T foo(){}   
  5. };   
  6. template< template< class T>class X>   
  7. struct Widget2  
  8. {   
  9. };   
  10. void main()  
  11. {  
  12. cout< <  3 < <  '\n';  

以上就是對(duì)C++模板的一些常用方法的介紹。


分享題目:C++模板常用使用方法介紹
網(wǎng)站路徑:http://www.5511xx.com/article/dhhdooj.html