如何摆脱错误C3861:?

时间:2011-11-08 12:34:17

标签: c++ templates

我有一个用c ++定义的类。我的.h文件中有一个模板。而这个模板很少在.cxx文件中定义的本地类。

a.h的内容

namespace test
{
 Class a
 {
   template<classT>
   {
     abc  xyz = //some initialization
   }
 };
}

a.cxx的内容

#include "a.h"
namespace test
{
   class abc 
   {
   };
}

当我编译这个文件时,编译得很好。但是当我尝试使用我在a.h中定义的模板时。它引发了我的错误。

错误C3861:'abc':找不到标识符

2 个答案:

答案 0 :(得分:0)

制作abc类的前向声明,如:

namespace test
{

 class abc;

 class a
 {
   template<classT>
   {
     abc  xyz = //some initialization
   }
 };
}

答案 1 :(得分:0)

您似乎错过了将class abc的声明放在.h文件中。

你放Class a代替class a