【问题标题】:How to use template classes in main function如何在主函数中使用模板类
【发布时间】:2017-05-04 01:45:46
【问题描述】:

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

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

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

template<typename T>
int main()

但后来我收到了链接错误,因为它不再将其识别为主要功能。我尝试了一些变通方法,比如创建一个可以完成所有事情的函数,但是那个函数必须是一个模板类,所以我仍然无法从 main.xml 调用它。一些帮助将不胜感激。谢谢。

`

【问题讨论】:

    标签: c++ class templates main


    【解决方案1】:

    还有更糟糕的问题:

    编译器无论如何都无法区分模板函数实例化,因为它无法区分main&lt;int&gt;main&lt;whatever&gt;,因为它们不是模板函数签名的一部分。

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

    【讨论】:

      【解决方案2】:

      无法对 main 进行模板化,但我认为您不想这样做。

      当您使用模板时,您可以这样做:

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

      【讨论】:

        【解决方案3】:

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

        LinkedListInterface<int> linkedList;
        

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

        【讨论】:

          猜你喜欢
          • 2020-10-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多