模板类内的模板

时间:2014-04-16 20:28:28

标签: c++ class templates typename

我有一个看起来像这样的课程:

template <typename P>
class Pack {
    Public:
          template <typename X>
    Private:
          Other T <other>
};

我想在类之外编写函数但是我在定义标题时遇到了困难..我试过这样的事情:

template <typename X>
int Pack<X>::pop(X led) const{
  // Do something in here with Other from the private above
}

但这不起作用它一直说“流行的定义,与P的任何定义都不匹配。

感谢任何帮助!

澄清:尝试实现函数存根,以便我可以在类之外编写代码。

1 个答案:

答案 0 :(得分:5)

您的代码看起来不完整,并且您不时会发布一小段代码,但我相信这种语法是您想要的:

#include <iostream>
using namespace std;

template <typename P>
class Stack {
    public:
          template <typename X> int pop(X pred) const;
};

template <typename P> 
template<typename X>
int Stack<P>::pop(X pred) const{
    return 0;
}

int main() {

    Stack<bool> obj;
    char a;
    obj.pop(a);

    return 0;
}

http://ideone.com/Cp69hg