Я определил два класса:Класс, содержащий вектор классов
class Group
{
public:
Group (void);
bool addStudent (const Student & X);
void printAll(void) const;
protected:
vector<Student> vectorOfStudents;
};
//-----------------------------------------------
class Student
{
public:
Student (string name, int age);
void printAtributes (void);
protected:
string nameOfStudent;
int ageOfStudent;
};
Я создаю объекты и хранить их в объекте групповой вектору, но у меня есть проблема, когда я хочу, чтобы напечатать их:
void Group::printAll (void) const
{
for (const auto & student : vectorOfStudents)
{
student . printAtributes (); // Line 54
cout << endl;
}
}
Вот функция, которая должна вызывать и печатать имя студента каждый раз:
void Student::printAtributes (void)
{
cout << "name: " << nameOfStudent << " | " << "age: " << ageOfStudent<< endl;
}
дает мне эту ошибку:
54:33: error: passing ‘const Student’ as ‘this’ argument of ‘void Student::printAtributes()’ discards qualifiers [-fpermissive]
student . printAtributes ();
Это происходит, если вы не храните вектор в классе? Сначала возьмите привычку, извлекая минимальный, но полный пример. –