【发布时间】:2016-02-25 08:34:15
【问题描述】:
告诉我为什么不能在另一个模板类中使用模板类的结构。 我个人认为这是合乎逻辑的。有c++这样的功能吗? 我正在使用 VS 2015。谢谢:)
template<typename T> class MyList
{
public:
struct Node
{
T value;
Node* next;
};
//...
};
template<typename Type> class MyMap
{
public:
struct ElementData
{
Type types[32];
unsigned key;
};
MyList<ElementData>::Node* nodes; //Syntax Error: Identifier 'Node'
};
虽然这有效。
template <typename T> struct Node
{
T value;
Node* next;
};
template<typename T> class MyList
{
public:
Node<T>* root;
//...
};
template<typename Type> class MyMap
{
public:
struct ElementData
{
Type types[32];
unsigned key;
};
Node<ElementData>* nodes;
};
【问题讨论】:
-
你知道类型名吗?