首页 文章

请求“......”中的成员“......”属于非类别类型“......”[关闭]

提问于
浏览
0

在我的c程序中,我有自己的自定义 Map ,由自定义节点组成,我试图获取“第一”和“第二”值(如std :: map) . 我尝试了许多不同的语法,但无济于事 .

我知道这个问题的常见修复方法是用 (*key_Iterator)->first 替换 (*key_Iterator).first 但是在这种情况下我需要能够访问第一种方法中的值 .

我在迭代器类中添加了变量,但程序无法识别它们 .

template <class T, class P>
class Iterator {
  public:
    Node<T,P>* operator*() { return ptr_; }
  private:
    Node<T,P>* ptr_;
    T first;
    P second;
}

任何关于如何正确实现第一个版本并删除此错误的建议将不胜感激 .

1 回答

  • 3

    (从评论转移)

    解决方案是从 operator * 返回一个引用,如下所示:

    Node<T,P> &operator *() { return *ptr_; }
    

相关问题