我有一个模板类:
template<typename A, typename B>
class A {
};
在另一个.h文件中
template<typename A, typename B>
class A; //forward declaration
我怎么能在这里声明m_A
?我不断收到 C++ forbids declaration of A
with no type error:
class B {
A* m_A;
};
最佳答案
如果您不知道要在 B
中实例化 A
的类型,那么您还必须使用 制作一个模板>B
template<typename A1, typename B1>
class B
{
A<A1, B1>* m_A;
};
要么那样,要么您必须将 A
实例化为特定类型,即,
class B
{
A<Type_1, Type_2>* m_A;
};
关于c++ - 模板类的组成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5878424/