簡體   English   中英

訪問另一個類中的模板化嵌套類函數和對象

[英]access a templatized nested class function and object in another class

我有兩個頭文件。

其中一個頭文件是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 來做,但沒有成功。

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 {};
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM