如何在main函数中使用模板类

时间:2016-12-19 03:14:35

标签: c++ class templates main

我需要在main函数中使用模板类。这是因为我在main函数中引用了一个模板类。例如:

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

所以我尝试将模板声明放在“int main()”

之上
template<typename T>
int main()

但后来我得到了链接错误,因为它不再认为这是一个主要功能。我尝试了一些工作,比如创建一个完成所有操作的函数,但是那个函数必须是一个模板类,所以我仍然无法从main调用它。一些帮助将不胜感激。感谢。

`

3 个答案:

答案 0 :(得分:1)

不可能对主要内容进行模板化,但我认为你不想这样做。

使用模板时,您可以执行以下操作:

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

答案 1 :(得分:1)

main不能是功能模板;它必须是一个功能。要在main中使用类模板,您必须通过提供所有必需的模板参数和对象声明来实例化模板:

LinkedListInterface<int> linkedList;

这告诉编译器从类模板LinkedListInterface创建一个类,其中第一个模板参数是类型int。然后它创建一个该类型的对象。

答案 2 :(得分:0)

还有更糟糕的问题:

编译器无论如何都无法区分模板函数实例,因为它不能区分main<int>main<whatever>之间的区别,因为它们不是模板函数签名的一部分。

正如其他答案所述,main不能成为模板。