Пожалуйста, помогите с ошибкой: ни один экземпляр конструктора не соответствует списку аргументов.
Вместо этого:
Student(char name[], char surname[], int age) {
Попробуйте это:
Student(const char *name, const char *surname, int age) {
Он жалуется, потому что указатели char
не соответствуют указателям на const char
.
strcpy(this->name, name);
// пожалуйста, объясните эту строку, что это значит?
Копирует строку из name
(переданный параметр) в другой name
(который является частью class Student
).Поскольку оба они называются name
, это неоднозначно.В этом случае name
относится к параметру, а this->name
используется для ссылки на поле в class Student
.
В общем, this
- указатель на объект, вызывающийфункция.