Я читаю текст на C ++. В примере текст написан:
class Student {
int no;
char grade[M+1];
public:
Student();
Student(int, const char*);
const Student& set(int, const char*);
void display() const;
};
Student::Student() {
no = 0;
grade[0] = '\0';
}
Student::Student(int n, const char* g) {
*this = Student(); // initialize to empty
set(n, g); // validate, reset if ok
}
Я не понимаю эту строку: * this = Student ();
Почему мы должны это делать, просто вызывая Student ();
также вызывает вызов конструктора по умолчанию?
Я читаю текст на C ++. В примере написано:
class Student {
int no;
char grade[M+1];
public:
Student();
Student(int, const char*);
const Student& set(int, const char*);
void display() const;
};
Student::Student() {
no = 0;
grade[0] = '\0';
}
Student::Student(int n, const char* g) {
*this = Student(); // initialize to empty
set(n, g); // validate, reset if ok
}
Я не понимаю эту строку: * this = Student ();
Почему мы должны это делать, просто вызывая Student ();
также вызывает вызов конструктора по умолчанию?
Я читаю текст на C ++. В примере написано:
class Student {
int no;
char grade[M+1];
public:
Student();
Student(int, const char*);
const Student& set(int, const char*);
void display() const;
};
Student::Student() {
no = 0;
grade[0] = '\0';
}
Student::Student(int n, const char* g) {
*this = Student(); // initialize to empty
set(n, g); // validate, reset if ok
}
Я не понимаю эту строку: * this = Student ();
Почему мы должны это делать, просто вызывая Student ();
также вызывает вызов конструктора по умолчанию?
Спасибо