C ++-类依赖-循环问题

时间:2019-01-19 20:09:36

标签: c++ c++11 c++14

您能给我建议我如何正确地构造代码吗? 我正在尝试对学生进行排序,为此,我需要访问 Database 对象以及学生的私有成员- index 。 现在我得到了错误:

  

错误:尚未声明“数据库”            朋友空sortStudents(数据库db);

但是如果我对课程进行重新排序,我会得到:

  

学生”未在此范围内声明            std :: vector数据;

什么是正确的解决方案?

class Student
{
    private:
        int _index {0};
    public:
        friend void sortStudents(Database db);
};

class Database
{
    private:
        std::vector <Student> data;
    public:
        friend void sortStudents(Database db);
};


void sortStudents(Database db)
{
    std::sort((db.data).begin(), (db.data).end(), 
             [](const Student& leftSide, const Student& rightSide)
             { return leftSide._index < rightSide._index; }
             );
}

0 个答案:

没有答案