1. 程式人生 > >C++11程序設計要點總結-模板機制詳解

C++11程序設計要點總結-模板機制詳解

ble -s amp 逗號 targe 設計要點 font 他會 識別

C++程序設計要點總結

在編程的過程中呢我們總會遇到一些各種各樣的問題,就比如在寫方法的時候,我們一個同樣的方法要寫好幾種類型的呢,這讓我們很傷腦筋,但是呢C++有一個強大的功能就是模板機制,這個模板機制就可以讓我們少寫很多同樣的代碼,那麽什麽是模板呢,。我們舉一個小例子吧!比如我們要去寫交換函數,那麽我們正常的寫法是

1 void swap(int&a,int&b)
2 {
3       int temp=a;
4       a=b;
5       b=temp;
6 }

這樣寫大家都可以看懂,但是卻有一個問題,我們現在寫的只是交換int類型的值那麽這樣寫很簡單麽,那麽我們如果要交換一個double類型的值呢,我們在寫一個double類型的swap函數麽。

1 void swap(double&a,double&b)
2 {
3       double temp=a;
4       a=b;
5       b=temp;
6 }

這樣寫的話太麻煩了,如果我在想交換一個float類型的呢,char類型的呢,難道我要一個一個定義麽,這個時候我們模板的作用就體現出來了。
既然要講模板那麽我們首先講的是模板怎麽定義模板的定義其實很簡單,就像變量的定義方法一樣,但是和變量不同的是他是在<中定義的>廢話不多說我們來看看案例吧!

1.template<typename name> //這是第一種的定義方法
2.template<class
name> //這是第二種的定義方法

那麽上面這兩種有什麽區別呢,我給你們簡單的概括一下,這裏面的class是可以變成任何類型,就比如說我們自己定義的類結構體共同體等等等等,typename就是基本數據類型,那麽什麽是基本數據類型呢,就是我們的int,char,string既然講到這裏了,那麽我們寫一個案例吧!

1 template<typename type>
2 void swap(type&a,type&b)
3 {
4     type temp=a;
5     a=b;
6     b=temp;
7 }

既然講完了定義那麽定義後的這個方法怎麽使用呢,其實使用起來也是很簡單的,和正常函數一樣傳參就好了,他會自己去匹配

1 int a = 10, b = 100;
2 swap(a,b);
3 cout << a << "\t"<<b << endl;

ps:使用必看

1.如果只有一個像上面的type那個swap一樣的話那麽你要註意一點,就是a和b的類型必須一樣,不然他不知道識別什麽。
2.使用模板的時候我們並不是一成不變的只能定義一個,其實我們可以像定義變量一樣的定義它,使用逗號隔開即可。

進入我的CSDN博客

C++11程序設計要點總結-模板機制詳解