所以我有以下代码:
template<class T>
class A
{
public:
class B
{
public:
virtual void Destroy(T obj);
};
B &_b;
A(B b) : _b(b)
{
}
void Go(T obj)
{
_b.Destroy(obj);
}
};
class X : public A<int>::B
{
public:
void Destroy(int x)
{
//do something
}
};
int main()
{
X x;
A<int> a(x);
a.Go(5);
return 0;
}
但我得到一个编译错误:
undefined reference to 'A<int>::B::Destroy(int)'
我之前在单独的 .hpp 和 .cpp 文件中制作模板时遇到过问题......但这都在一个文件中。
谢谢。