我需要在main函数中使用模板类。这是因为我在main函数中引用了一个模板类。例如:
LinkedListInterface<T> * linkedList = new LinkedListInterface<T>*;
所以我尝试将模板声明放在“int main()”
之上template<typename T>
int main()
但后来我得到了链接错误,因为它不再认为这是一个主要功能。我尝试了一些工作,比如创建一个完成所有操作的函数,但是那个函数必须是一个模板类,所以我仍然无法从main调用它。一些帮助将不胜感激。感谢。
`
答案 0 :(得分:1)
不可能对主要内容进行模板化,但我认为你不想这样做。
使用模板时,您可以执行以下操作:
LinkedListInterface<int> *linkedList = new LinkedListInterface<int>();
答案 1 :(得分:1)
main
不能是功能模板;它必须是一个功能。要在main
中使用类模板,您必须通过提供所有必需的模板参数和对象声明来实例化模板:
LinkedListInterface<int> linkedList;
这告诉编译器从类模板LinkedListInterface
创建一个类,其中第一个模板参数是类型int
。然后它创建一个该类型的对象。
答案 2 :(得分:0)
还有更糟糕的问题:
编译器无论如何都无法区分模板函数实例,因为它不能区分main<int>
和main<whatever>
之间的区别,因为它们不是模板函数签名的一部分。
正如其他答案所述,main不能成为模板。