【问题标题】:C++ Declaring Template <Class T> above int main()C++ 声明模板 <Class T> 高于 int main()
【发布时间】:2013-01-13 09:50:50
【问题描述】:

我的主目录中有一个模板列表,其中有一个模板类对象。

List<serviceInfo<T>> priceList;

为了让它正常工作,我必须在我的 main 上方声明模板

template <class T>
int main()

这会给我以下错误:

LNK2019:未解析的外部符号 在函数中引用了 main __tmainCRTStartup

【问题讨论】:

  • 您永远不需要模板化的main。你想做什么?要制作一个,您必须它一个类型。
  • 顺便说一句,GCC is very explicit
  • 因为我正在尝试使用不同类型的参数创建 2 个 List> 列表。
  • @PamelaLufkin,你打算如何获得这些类型?您仍然可以通过使用两种不同的类型实例化两次来创建两个不同的。
  • 实际上我的意思是我的 2 列表会像这样 priceList(string, double, double, double) timeList(string, int, int , int) 这就是为什么我将 serviceInfo 设为模板类

标签: c++ templates main


【解决方案1】:

main 不应该被模板化。

相反,您应该将List&lt;serviceInfo&lt;T&gt;&gt; 中的T 替换为实际类型。 如果您想在列表中包含不同类型的 serviceInfo&lt;T&gt;,请创建多个列表。

【讨论】:

  • 是的,我尝试创建 2 个这样的列表 List> priceList; List> durationList;
  • 您只声明了一个模板化参数T。你用的是4!如果需要 4 个模板参数,请将 serviceInfo 的声明更改为 template&lt;class T, class U, class V, class W&gt;
  • 我可以使用模板 吗?
  • @Pamela 我的建议是你现在应该忘记模板,先学习基本的 C++ 编程技能
猜你喜欢
  • 2019-07-30
  • 1970-01-01
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
相关资源
最近更新 更多