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

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的定义?在一天中的大部分时间里,我一直在努力解决这个问题,并非常感谢您的帮助。

最佳答案

您不应该在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 ...;
}

LIVE

关于c++ - C++模板和内部类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46508607/

10-13 08:15