自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++函數(shù)模板基本概念講述

開發(fā) 后端
我們在這篇文章中為大家接受了C++函數(shù)模板的定義方法,以及各種應用方式,希望這里的內容能幫助大家充分掌握這方面的應用技巧。

C++編程語言中的模板應用對于程序開發(fā)是一個非常重要應用。其中,C++函數(shù)模板能以同樣的程序代碼對不同類型的數(shù)據(jù)進行處理,其關鍵是將所處理的數(shù)據(jù)類型說明為參數(shù),即類型參數(shù)化。

定義函數(shù)模板的一般形式是:

 

  1. template <class 類型參數(shù)名1 ,class 類型參數(shù)名 2,…> 
  2. 函數(shù)返回值類型 函數(shù)名(形參表)  
  3. {  
  4. 函數(shù)體  

 

說明:

(1)這里的類型參數(shù)名就是代表形形色色數(shù)據(jù)類型的通用參數(shù)名,它可以代表基本數(shù)據(jù)類型,也可以代表類。

(2)編寫C++函數(shù)模板的方法是:

step 1:定義一個普通的函數(shù),數(shù)據(jù)類型采用具體的普通的數(shù)據(jù)類型,仍以打印數(shù)組為例,先定義一個打印整型數(shù)組的普通函數(shù):

  1. void printArray(int *array,int count)  
  2. {  
  3. for (int i=0;i<count;i++)  
  4. cout<<array[i]<<" ";  
  5. cout <<endl;  

 

step 2:將數(shù)據(jù)類型參數(shù)化:將其中具體的數(shù)據(jù)類型名(如 int )全部替換成由自己定義的抽象的類型參數(shù)名(如T)。

step 3:在函數(shù)頭前用關鍵字template引出對類型參數(shù)名的聲明。這樣就把一個具體的函數(shù)改造成一個通用的函數(shù)模板:

  1. template <class T>void printArray(T *array,int count)  
  2. {  
  3. for (int i=0;i<count;i++)  
  4. cout<<array[i]<<" ";  

 

 #t#(3)C++函數(shù)模板不是一個可以執(zhí)行的函數(shù),它只是對函數(shù)功能的程序描述,編譯程序不為它生成執(zhí)行代碼。

(4)當編譯程序遇到函數(shù)調用:

函數(shù)名 (實參表)時,自動將實參表中具體的數(shù)據(jù)類型替換函數(shù)模板中的類型參數(shù),生成一個隱含的重載函數(shù),該重載函數(shù)的程序代碼與函數(shù)模板相同,類型則采用實參表中的具體數(shù)據(jù)類型。仍以前面所創(chuàng)建的打印數(shù)組C++函數(shù)模板為例,當程序出現(xiàn)函數(shù)調用語句printArray(a,aCount);時,編譯程序將根據(jù)第一個實參a的數(shù)據(jù)類型int 匹配類型參數(shù)T,將函數(shù)模板中的所有T都替換成具體的數(shù)據(jù)類型int,從而產生一個具體的可執(zhí)行函數(shù)的定義(這個過程稱為模板實例化):

 

  1. void printArray(int *array,int count); 

 

責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-01 14:07:12

C++多態(tài)性

2010-02-04 13:56:24

C++類模板特化

2010-02-03 14:36:47

C++仿函數(shù)

2023-12-13 10:51:49

C++函數(shù)模板編程

2010-02-04 10:08:00

C++靜態(tài)成員函數(shù)

2010-02-02 10:33:22

C++引用

2010-02-03 13:22:07

C++時間

2010-02-05 12:57:20

C++ kdevelo

2010-02-02 15:30:05

C++ include

2010-02-03 11:11:18

C++類型轉換

2010-02-02 13:41:01

C++類繼承

2010-02-01 17:24:41

C++循環(huán)語句

2010-02-04 14:01:43

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

2023-12-24 12:56:14

C++函數(shù)語言

2010-02-06 14:04:58

C++內存使用機制

2010-01-15 13:30:50

VB.NET Prog

2010-02-06 09:53:26

C++ void

2010-02-06 15:58:10

C++集合初始化

2010-02-04 17:39:48

C++字符串類型

2010-02-04 17:32:43

C++中C風格字符串
點贊
收藏

51CTO技術棧公眾號