全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:689
推到 Plurk!
推到 Facebook!

template

尚未結案
jason_cyl329
高階會員


發表:123
回覆:155
積分:105
註冊:2003-05-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-30 13:17:48 IP:211.23.xxx.xxx 未訂閱
請問, 我在Form1.cpp內使用template函式宣告,不是成員函式,可以使用, 可是,把這個template函式放再另一個A.cpp,他的A.h也有宣告, 但是就是不能從Form1去call他,請問template是否只能在自己的程式段內使用
bass15
高階會員


發表:24
回覆:171
積分:119
註冊:2003-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-30 13:40:59 IP:219.84.xxx.xxx 未訂閱
可以把你宣告的部份POST上來嗎? Form1.cpp中要把 #include "A.h" 加進去試試看..
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-30 15:50:15 IP:211.76.xxx.xxx 未訂閱
jason_cyl329 您好:    因屬外部檔案,除了include相關.h檔之外,還要將該.c/.cpp加入Project中。 另include時記得用雙引號"my.h"。
jason_cyl329
高階會員


發表:123
回覆:155
積分:105
註冊:2003-05-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-30 17:53:14 IP:211.23.xxx.xxx 未訂閱
以上所緒的均有做    程式很簡單,如下: Unit.cpp //---------------------------------------------------------------------------    #include  #pragma hdrstop #include "Unit1.h" #include "Unit2.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormClick(TObject *Sender) { int i = templateproc(5); Canvas->TextOutA(1,i,IntToStr(i)); } //--------------------------------------------------------------------------- Unit2.cpp //--------------------------------------------------------------------------- #pragma hdrstop #include "Unit2.h" //--------------------------------------------------------------------------- #pragma package(smart_init) template T templateproc(T Reg) { return T; } /////////////////// Unit2.h //--------------------------------------------------------------------------- #ifndef Unit2H #define Unit2H //--------------------------------------------------------------------------- #endif template T templateproc(T);
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-30 21:43:18 IP:211.76.xxx.xxx 未訂閱
jason_cyl329 您好:    依照您所提測試一下,確是如此。 所以自圓其說,妄加臆測如下: 一般外部函式,是在連結階段才將之含括進來,所以編譯時儘管沒"看到"該函式,仍能依.>< >< >
jason_cyl329
高階會員


發表:123
回覆:155
積分:105
註冊:2003-05-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-08-04 15:37:51 IP:211.23.xxx.xxx 未訂閱
請問richtop前輩, 那要如何來做template的include file呢? 如何定義一些template在一固定的*.cpp 這樣其他程式要用到就可以用加入project的方式來做. 如我現在設計一個新的project,有需要用到相關的template 就可以#include ....並將template的cpp加入。
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-08-04 17:00:59 IP:211.76.xxx.xxx 未訂閱
jason_cyl329 您好:    您說的沒錯! 將完整的定義存入"xxx.h"或"xxx.cpp",再以include方式引用即可以呼叫到。 <>< class="code">// Save as xxx.h or xxx.cpp template T templateproc(T Reg) { return (T) Reg; } RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
jason_cyl329
高階會員


發表:123
回覆:155
積分:105
註冊:2003-05-26

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-08-04 18:16:59 IP:211.23.xxx.xxx 未訂閱
richtop兄,謝謝你的指教,跟你交流使我受益良多!!
系統時間:2024-06-02 17:01:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!