'identifier'使用未定义的类

时间:2014-12-04 22:44:34

标签: c++ templates

我有以下代码:

#include <iostream>

template <class T>
class A;

int main()
{
    A<int> obj;
}

template <class T>
class A
{
public:
    A();
};

template <class T>
A<T> ::A()
{}

我的编译器(MS Visual Studio Update 4 Pro)给出了以下错误:

error C2079: 'obj' uses undefined class 'A<int>'

MinGW也给了我一个相同含义的错误。

这是什么原因?类A <T>的声明在main函数之前,因此应该知道。

1 个答案:

答案 0 :(得分:0)

这正是它所说的内容:模板还没有在您尝试使用它时定义。必须提供定义,而不仅仅是声明,才能实例化模板。