当我尝试编译implem.cpp文件时出现错误:看起来编译器不知道klasa*
是什么。它需要模板参数。当我将fun
的定义放入类体时,它可以工作。
header.h
// ... couple of includes
using namespace std;
template <class typ>
class klasa {
typ i;
virtual klasa* fun()=0;
};
header2.h
#include "header.h"
class klasa2 : public klasa<int>{
klasa* fun();
};
h2_implem.cpp
#include "header2.h"
klasa* klasa2::fun(){
return NULL;
}