带有模板的类实例的extern

时间:2017-09-16 19:48:40

标签: c++ templates extern

我在main.cpp

中有一个带有模板的类的以下实例
template <class T>
T mypair<T>::getmax ()
{
  T retval;
  retval = a>b? a : b;
  return retval;
}

mypair <int> myobject (100, 75);

我希望有一个头文件,它对这个类实例有一个e​​xtern,即&#34; myobject&#34;。

如何实现这一目标?

我已经尝试过:

* extern mypair<int> myobject;
* extern template mypair<int> myobject;
* extern template class mypair<int> myobject;

1 个答案:

答案 0 :(得分:0)

您需要在标题中定义模板类,该标题必须包含在extern声明之前。

如果您的编译器遇到标题为extern mypair<int> myobject;的标题,则它不知道实体mypair是什么类型。您必须首先定义它 - 通过包含包含模板类的标头。