双向模板类依赖c ++

时间:2012-10-15 13:11:21

标签: c++ templates dependencies forward-declaration

问题是A类依赖于B类,反之亦然。编译器会抱怨一个未知类型。通常的解决方案是向前声明类。但是如何声明模板类?

1 个答案:

答案 0 :(得分:0)

我花了一段时间才找到解决方案,所以我想我可以通过在这里发布“模板”来让别人的生活更轻松。

// Header A.h
template<class z, class w = float>
class B;

template<class x, class y = double>
class A
{
    B mb;
}


// Header B.h
template<class x, class y = double>
class A;

template<class z, class w = float>
class B
{
    A mA;
}

此外,您可以更改模板声明中的可选参数。