c++ 模板和内部 类

c++ templates and inner classes

有人可以澄清内部 class 与模板一起使用吗?我搜索了书籍和互联网示例来学习模板,但很少有示例显示内部 class 用法。目前我收集到的是

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

     A();
     ~A();

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

从阅读 this and this 我相信我应该将外部 class 构造函数定义为

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

}

但是我如何定义内部 class 构造函数定义?我如何定义a的定义?我一天中的大部分时间都在努力解决这个问题,非常感谢您的帮助。

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

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

而对于B

的构造函数
template <class T>
A<T>::B::B()
{
}

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

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

LIVE