c ++模板和内部类

时间:2017-10-01 02:07:11

标签: c++ templates inner-classes

有人可以用模板澄清内部课程的使用吗?我搜索过书籍和互联网示例来学习模板,但很少有例子显示内部类的用法。到目前为止我收集的是

template <class T>
class A
{
     class B
     {
         B()
         ~B()
     }

     A();
     ~A();

    B* a(T i, B* l);
}

从阅读thisthis我相信我应该将外部类构造函数定义为

template <class T>
class A<T>::A()
{

}

但我如何定义内部类构造函数定义?如何定义a的定义?在这一天的大部分时间里,我一直在努力解决这个问题,并且非常感谢他们的帮助。

1 个答案:

答案 0 :(得分:2)

你不应该在class的构造函数的定义中使用A,它应该是

template <class T>
A<T>::A()
{
}

对于B的构造函数,

template <class T>
A<T>::B::B()
{
}

对于成员函数a,在引用typename时使用A<T>::B

template <class T>
typename A<T>::B* A<T>::a(T i, typename A<T>::B* l)
{
    return ...;
}

MDN