我有两个头文件。
其中一个头文件是 tree.h ,它具有一个模板化的类。它还包含另一类“迭代器”。
template <typename Key, typename Value>
class tree
{
public:
class iterator
{
public:
//...
};
iterator find(const Key& key) const;
//....
};
我还有另一个头文件 forest.h ,其中森林类从tree.h文件继承树类。
template<typename Key, typename Value>
class forest : public tree<Key, Value>
{
//...
//iterator find(const Key& k); // overloading function
//iterator it; // an object of iterator
//...
}
我需要在林类中实现代码注释部分的帮助,但是,我不知道如何访问树的嵌套类(由于模板)。我尝试使用typename进行操作,但未成功。
答案 0 :(得分:0)
template <typename Key, typename Value>
class tree
{
public:
class iterator {};
};
template <typename Key, typename Value>
class forest : public tree<Key, Value>
{
public:
typedef typename tree<Key, Value>::iterator iterator;
iterator find(const Key& k);
};
template <typename Key, typename Value>
typename forest<Key, Value>::iterator forest<Key, Value>::find(const Key& k)
{
iterator it;
return it;
}
C ++ 11:
template <typename Key, typename Value>
auto forest<Key, Value>::find(const Key& k) -> iterator
{
return {};
}