討論區快速選單
知識庫快速選單
傑米的攝影旅遊筆記 網路投保旅行平安險 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
何謂泛型?
更改我的閱讀文章字型大小
作者 : windforce(微風飄過山尖)
[ 貼文 27 | 人氣 3595 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/6/7 下午 03:01:09
看到 一個程設的名詞泛型(Generic)
好像有可以稱做樣版(Template)
請問這在程式設計裡代表什麼意思?

請各位大大教我一下
最好能用簡單的程式碼表現一下概念
謝謝
作者 : linkin(Linkin) 影像處理與計算機圖學優秀好手C++ Builder優秀好手貼文超過500則
[ 貼文 696 | 人氣 1493 | 評價 3450 | 評價/貼文 4.96 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/6/12 下午 02:44:16

>看到 一個程設的名詞泛型(Generic)
>好像有可以稱做樣版(Template)
>請問這在程式設計裡代表什麼意思?
>
>請各位大大教我一下
>最好能用簡單的程式碼表現一下概念
>謝謝

template<class T>T fun(T input1, T input2)
{
  return input1+input2;
}

int main()
{
  cout << fun(1, 3) << endl;                          // int type...
  cout << fun(45.16, 186.189) << endl;         // double type...

  return 0;
}


最典型範例的就是當你需要作個簡單的兩各數相加

以前要做兩各數的相加

你可能會因為送進函式中的變數其行的的不一而寫了許多相似的程式碼

如 

int funint(int i1, int i2)
{
  return i1 + i2;
}

double fundouble(double i1, double i2)
{
  return i1 + i2;
}

等....就算是做成函式多載的形式(相同的函式名稱)也需要寫很多相同的程式碼

當有的template這東西  就不需要在如此

編譯器會自己去調整所需輸入或是回傳的資料型態

就像最上頭的例子一樣 ^^
作者 : windforce(微風飄過山尖)
[ 貼文 27 | 人氣 3595 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/6/12 下午 06:27:53
瞭解了 
講得很清楚 謝謝
作者 : frankfkc(長長) 程式設計甘苦談卓越專家C++優秀好手貼文超過1000則人氣指數超過50000點
[ 貼文 1148 | 人氣 62194 | 評價 4640 | 評價/貼文 4.04 | 送出評價 108 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/7/2 上午 08:42:02

>看到 一個程設的名詞泛型(Generic)
>好像有可以稱做樣版(Template)
>請問這在程式設計裡代表什麼意思?
>
>請各位大大教我一下
>最好能用簡單的程式碼表現一下概念
>謝謝

或者稱為型別參數化。

之前我們寫程式時,通常參數化的是值,而不是型別。
例如,參數型態是整數,這是固定的,但是在執行時期則可能傳進不同的值。
而泛型則可進一步將參數的型別(Type)加以參數化,由Compiler在適當時機
產生相對應的程式碼,或者都不產生。

通常我們在解決問題時,可用繼承或用包含的方式來解決。
但在可重複使用的條件下,通常會用包含的方式。
當然,更常用兩者合作。

有興趣,可進一步去參看Design Pattern,會給你帶來一些啟示的。
作者 : blueimp(藍色小惡魔) 貼文超過200則人氣指數超過10000點
[ 貼文 378 | 人氣 24521 | 評價 630 | 評價/貼文 1.67 | 送出評價 12 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/10/15 下午 06:18:05
建議你到侯捷網站看看
http://www.jjhou.com/
大師有精湛的解說
如果要更進一步的研究
可以買大師的書回家研究喔
作者 : madi (madi)
[ 貼文 4 | 人氣 53 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/10/18 上午 11:40:16
??? 那請問與『多型』有何不同 ???
作者 : jaulong(松谷子)
[ 貼文 61 | 人氣 454 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/10/18 下午 09:38:47

>??? 那請問與『多型』有何不同 ???

多型針對函式

泛型針對型別
作者 : nomad_libra(流浪天秤)
[ 貼文 22 | 人氣 3803 | 評價 100 | 評價/貼文 4.55 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/10/30 下午 08:11:04
不如說

泛型 是針對特定指定型別產生對應型態的程式碼來 處理不同型別
        泛行是將型別抽象化 參數化 
多型 則是針對不同的型別都給予相同的操作方式 當然 必須針對不同的型別
        撰寫不同的程式碼 

作者 : lcwdl(混世魔王) 貼文超過500則人氣指數超過10000點
[ 貼文 951 | 人氣 10894 | 評價 1100 | 評價/貼文 1.16 | 送出評價 10 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/17 上午 10:38:51
有人說  template 也是多形的一種- compile-time 時的多形

多形的定義:同樣的指令,不同的方法
作者 : lcwdl(混世魔王) 貼文超過500則人氣指數超過10000點
[ 貼文 951 | 人氣 10894 | 評價 1100 | 評價/貼文 1.16 | 送出評價 10 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/17 上午 10:39:29
還有,你好像貼錯版了...
作者 : loveseeker(love seeker)
[ 貼文 135 | 人氣 1743 | 評價 150 | 評價/貼文 1.11 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/17 下午 02:30:08

>>多型 則是針對不同的型別都給予相同的操作方式 當然 必須針對不同的型別撰寫不同的程式碼 
>
在OOP裡,morphism可有二種不同的型式:靜態多型與動態多型;前者用在同一類別的方法,又稱作是overloading,而後者則用於類別體系的方法,又稱作是overriding。
 板主 : Clark
 > 物件導向程式設計 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 物件導向程式設計 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
物件導向程式設計
1 Arthur 180 
2 藍色LED 150 
3 長長 100 
4 Linkin 100 
5 love seeker 100 
6 Raymond 90 
7 Nets 80 
8 nop 70 
9 Huah 70 
10 矇矇 60 
物件導向程式設計
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.0625