【发布时间】:2018-02-06 22:42:19
【问题描述】:
我无法找出正确的语法来为嵌套类编写正确的模板。我想做这样的事情
template <typename T>
class list {
private:
class node {
public:
T value;
node();
~node();
};
public:
node<T> *H;
list();
~list();
};
我想要一个类来表示外部类的每个元素,所以我想让内部类隐藏在外部类中。这可能吗?还是我应该使用不同的方法?
【问题讨论】:
-
你想让内部类也成为模板吗?
-
node不是模板。node *H;应该可以正常工作。 -
在一个完全不相关的注释中,如果你有一个只有公共成员的类,那么考虑改用
struct。class和struct是一样的,只是默认可见性不同(private代表class,public代表struct)。 -
是的node应该是一个模板类,但是类的类型应该是list声明时指定的类型。如果我写 list
我希望节点是 int 类型。 -
public是private嵌套类的成员?当有人试图在list<>之外访问H时,您会遇到问题
标签: c++ class templates inner-classes