正确嵌套类C++的模板

fed*_*ngo 5 c++ templates class inner-classes

我无法弄清楚为嵌套类编写正确模板的正确语法.我想做这样的事情

template <typename T>
class list {
private:
    class node {
    public:
        T value;
        node();
        ~node();
    };

public:
    node<T> *H;
    list();
    ~list();
};
Run Code Online (Sandbox Code Playgroud)

我希望有一个类来表示外部类的每个元素,所以我希望将内部类隐藏在外部类中.这可能吗?或者我应该使用不同的方法?

use*_*042 10

您不需要为内部类指定模板参数(因为它未声明为模板类):

template <typename T>
class list {
private:

    class node {
    public:
        T value;
        node();
        ~node();
    };

public:
    node *H; // <<<<<<
    list();
    ~list();
};
Run Code Online (Sandbox Code Playgroud)

  • @muXXmit2X 客户端可以使用 `auto` 访问它。 (2认同)

fed*_*ngo 1

最终我所寻找的就是这个。

template <typename T>
class list {
private:
    template <typename U>
    class node {
    public:
        U value;
        node();
        ~node();
    };

public:
    node<T> *H;
    list();
    ~list();
};
Run Code Online (Sandbox Code Playgroud)