Сегодня в моем классе у нас было упражнение по наследству.Мы должны были написать класс UnderGrad, унаследованный от класса Student, унаследованного от класса Person.
Person имел 3 переменные для класса: имя, адрес и день рождения.
У ученика был идентификационный номер, степень магистра и тип степени.
И, наконец, у старшекурсника были переменные предыдущей средней школы и кредиты.
Когда я писал заголовочный файл для каждого из классов,конструктор по умолчанию выглядел примерно так:
//snippet from UnderGrad.h
Undergrad(string nm = "", string add = "", string bday = "", int id = 0, string maj = "", string degtyp = "", string hs = "", int cred = 0) : Student(nm,add,bday,id,maj,degtyp) {
highSchool = hs;
credits = cred;
};
//snippet from Student.h
Student(string nm = "", string add = "", string bday = "", int id = 0, string maj = "", string degtyp = "") : Person(nm,add,bday){
stuId = id;
major = maj;
degreeType = degtyp;
};
//snippet from Person.h
Person(string nm = "", string add = "", string bday = ""){
name = nm;
address = add;
bDay = bday;
};
Мой профессор сказал, что это нечитабельно и что на самом деле это не так.
Мне было интересно, что не так с созданием конструкторов по умолчанию, этопуть?Что-то не так?Есть ли лучший способ сделать это?