繁体   English   中英

'标识符'使用未定义的类

[英]'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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM