c – 继承具有内部类的模板类,并访问继承类中的内部类
发布时间:2020-12-16 06:56:20 所属栏目:百科 来源:网络整理
导读:我有一个模板类“BinaryHeap”,它本身也声明了一个公共类“Item”. 现在我想用一个哈希来扩展BinaryHeap以进行元素查找,从而继承它.我称之为“HashedBinaryHeap”,它应该像BinaryHeap一样使用相同的Item类. 存根看起来像这样: templateclass Tclass BinaryH
我有一个模板类“BinaryHeap”,它本身也声明了一个公共类“Item”.
现在我想用一个哈希来扩展BinaryHeap以进行元素查找,从而继承它.我称之为“HashedBinaryHeap”,它应该像BinaryHeap一样使用相同的Item类. 存根看起来像这样: template<class T> class BinaryHeap { public: class Item {...}; ... void appendItem(const Item & item); ... }; template<class T> class HashedBinaryHeap : public BinaryHeap<T> { public: ... void appendItem(const Item & item); ... }; 现在的问题是,当我尝试访问HashedBinaryHeap中的Item类时,就像我在appendItem()方法中那样,我得到一些编译器错误. 当我像上面或与< T>一样写的时候: void appendItem(const Item & item); void appendItem(const Item<T> & item); 我明白了: ISO C++ forbids declaration of 'Item' with no type 当我做其中一个时: void appendItem(const HashedBinaryHeap::Item & item); void appendItem(const HashedBinaryHeap<T>::Item & item); 我明白了: expected unqualified-id before '&' token 那么我怎样才能“访问”HashedBinaryHeap中的类Item?我有什么误会? (也许这不是模板类相关的问题,但我知道模板类让许多C初学者感到困惑,我仍然不敢称自己为别的东西……请让我出去.:)) 提前致谢! 解决方法
好的,解决了!
void appendItem(const typename HashedBinaryHeap<T>::Item & item); 这样做了 – 我不知道typename … (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |