看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《ayumiQmazaky (拜託刪我 爛人)》之銘言: : 在簡單複習一下template的用法 : http://hatsukiakio.blogspot.com/2009/05/c-template.html : 這網頁介紹得不錯 我就針對這個網頁的內容回好了, 首先是這段程式碼: http://paste.plurk.com/show/796586/ 這段程式碼之所以不能產生 executable 的原因: 1. 假如你是在 "..." 的地方呼叫 swaps<T>(), 編譯器雖看得到 template宣告, 但因為沒有提供模版的樣貌所以不能在呼叫點 產生可用的函式實體 2. 在編譯 swaps() (非模版)的時候編譯器無法找出 T 代表的型 別為何,所以也無法產生可用的函式實體 接著再來看他所謂聖經裡面的例子: http://codepad.org/vYlRCShM 之後他寫的一切請你全都忘掉, 如果你想要儲存整數指標, 在定義 容器的時候寫成這樣就好: http://codepad.org/8BVQI3V6 任何靜態成員都不需要! 只是要記得釋放掉配置出來的記憶體... Vector<T*> 去繼承 Vector<void*> 雖然可以節省釋放的程式碼, 但 是具現化出來的類別實體數量實際上是不會變少的, 雖然也可以做: http://codepad.org/5PCbQuYt 只是這樣轉不一定安全就是了, 只要你用 static_cast<T> 編譯器會 該該叫的都儘量別去寫(程式碼基於 sizeof(T*) == sizeof(void*) 的假設) 你沒發現他給的錯誤訊息都跟例子都毫不相關嗎?好歹也先檢查一下 = =" -- ★ ★ ███ ███ █▌█ ██◣ ███ ▋▋█ █▂█ █▃█ ███ █▆█ █▄█ ███ █ ◣ █ █ ▋██ █▆◤ ███ ███ Kim Jae Kyung Koh Woo Ri Cho Hyun Young Kim Ji Sook φwindyhorse No Eul Oh Seung A Jung Yoon Hye -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.115 ※ 編輯: loveme00835 來自: 140.121.197.115 (12/14 23:50)
tropical72:不推不行啊!! 12/15 06:21