2013-10-14 24 views
1

我的模板讀this教程,當它來到函數模板,我發現這個代碼片斷和文本類生成當我們通過一個特定類型的類模板

template <class myType> 
myType GetMax (myType a, myType b) { 
return (a>b?a:b); 
} 

GetMax <int> (x,y); 

當編譯器遇到這調用一個模板函數,它使用該模板自動生成一個函數,用作爲實際模板參數(本例中爲int)傳遞的類型替換myType的每個外觀,然後調用它。該過程由編譯器自動執行,對程序員不可見。

那麼如何在類模板的情況下實例化呢?那裏的文檔沒有提到這個話題。當

  1. 我創建對象
  2. 呼叫首次
  3. 我每次調用該函數的功能,它確實發生

可有人請扔一些輕關於這一主題

回答

2

當編譯器發現你用它爲<int>時,它將在編譯時實例化。 (其他一切都是編譯器的具體實現)

實例化在翻譯單元中爲每個模板參數出現一次。

相關問題