C++函數模版的簡單使用

來源:互聯網
上載者:User

標籤:

模版算是C++的專屬特性吧,也算是C++中比較難的地方,我平時開發的時候用的非常少,或者幾乎沒有用到,需要模版的地方是能看懂架構中相關的代碼;

模版函數相對還是很簡單的,引入模版的目的在於代碼的重用;比如演算法相似,但是由於資料類型不同,我們不得不把同樣的一份代碼拷貝兩次,而僅僅是為了修改資料類型,那麼在引入了函數模版之後,我們可以僅僅用一份代碼而表示不同重載函數。

下面介紹一下最簡單的函數模版的應用:

template <typename T>  //定義一個抽象的資料類型T

T myMax(T a, T b) {    //聲明函數模板

  return a > b ? a : b; 

}

int main () {

  int  a = 2;

  int b = 3;

  std::cout<<myMax(a, b)<<std::endl;  //動態產生函數 int myMax(int , int)

 

  float c = 2.0f;

  float d = 3.0f;

  std::cout<<myMax(c, d)<<std::endl;  //動態產生函數 flota myMax(float, float)

}

代碼在第一次調用myMax()函數時,其參數都是int型,則編譯器推導模板參數T為int,編譯器會以函數模板為樣板,以實際類型int代替函數模板中的抽象類別型T,自動為這個函數調用產生一個int類型的版本。

 

C++函數模版的簡單使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.