2016-12-19 22 views
-4

我需要在我的主函數中使用模板類。這是因爲我在我的主函數中引用了一個模板類。例如:如何在主函數中使用模板類

LinkedListInterface<T> * linkedList = new LinkedListInterface<T>*; 

所以我試圖把上面的模板聲明「詮釋的main()」

template<typename T> 
int main() 

但後來我得到了鏈接錯誤,因爲它不再承認這是一個主要功能。我嘗試了一些工作,比如做一個完成所有事情的函數,但是那個函數必須是模板類,所以我仍然不能從main調用它。一些幫助將不勝感激。謝謝。

`

回答

1

這是不可能的模板來,但我不認爲你要做到這一點。

當你使用模板,你可以這樣做:

LinkedListInterface<int> *linkedList = new LinkedListInterface<int>(); 
0

有很多糟糕的問題:

編譯器無法區分模板函數實例無論如何,因爲它不能告訴main<int>main<whatever>之間的差異,因爲它們不是模板函數簽名的一部分。

正如其他答案所指出的,main不能是模板。

1

main不能作爲函數模板;它必須是一個功能。內main使用類模板,你必須提供所有必需的模板參數與對象聲明實例化模板:

LinkedListInterface<int> linkedList; 

這告訴編譯器從類模板LinkedListInterface其中第一個模板創建一個類參數是類型int。然後它創建一個這種類型的對象。

相關問題