Никак не могу понять, как работает список инициализации.
Возьмём кусок кода
Student(string fname, string sname, short s) : fname(fname), sname(sname), stependy(s) {}
Вроде бы понятно, что это всё равно, что написать
Student(string fname, string sname, short s) {Student::fname = fname; Student::sname = sname; Student::stependy = s;},
но с другой стороны - ничего не понятно