繁体   English   中英

如何在子结构 const 方法中访问属性的私有属性?

[英]How to access a private property of a property in child struct const method?

我创建了一个名为Course的 class 和私有属性std::string code和另一个 class 名为Student私有属性std::string id 然后我创建了一个名为Enrollment的 class 为:

class Enrollment {
  private:
    Course course;
    Student student;

  public:
    struct EnrHash {
      size_t operator() (const Enrollment &__e) const {
        auto _code = std::hash<std::string>() (__e.course.code);
        auto _id = std::hash<std::string>() (__e.student.id);
        return (_code ^ _id);
      }
    }
}

即使将coursestudent属性更改为protected后,我也无法访问它们。 我尝试用course.getId()替换它,但仍然无法正常工作。

我想了解为什么会这样以及如何处理它。

谢谢:)

使struct EnrHash成为Enrollmentfriend

class Enrollment {
  protected:
    Course course;
    Student student;

  public:
    friend struct EnrHash;
    struct EnrHash {
…
    };
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM