嵌套的两个模板类的外部声明

时间:2017-02-15 18:31:56

标签: c++ templates

假设我们有一个名为 outer 的模板类,在这个模板类中我们声明了一个名为 inner 的模板类。

template <typename T>
class outer{

template <typename U> class inner;

};

我的问题;

  • 1)如何在外部声明模板类?
  • 2)如何在模板外部类之后定义模板内部类?

根据重复的答案,

#include <iostream>
#include "forward_list.h"

template <typename T>
class outer{
    template <typename U> class inner;
private:
    inner<T> innerItem;
public:
    void doSomething(){
        innerItem.print();
    }

};

template <typename T>
template <typename U>
class outer<T>::inner{
public:
    void print(){std::cout << "inner print\n";}

};


int main(int argc, char ** argv){


    outer<int> a;
    a.doSomething();

    return 0;
}

0 个答案:

没有答案