您能给我建议我如何正确地构造代码吗? 我正在尝试对学生进行排序,为此,我需要访问 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; }
);
}