[英]'identifier' uses undefined class
我有以下代码:
#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
函数之前,因此应该知道。
它的含义与所声明的完全相同:尚未在您尝试使用模板时定义模板。 为了实例化模板,定义(不仅是声明)必须可用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.