ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
petr.SetTest(0, 51.5);
. . .
petr.SetExam(0, 60.0);
. . .
petr.Print();
// перевод к следующему семестру
petr.NextSession();
}
catch (int e)
{
// обработка исключений,
// связанных с невозможностью фиксации
// сдачи зачетов и экзаменов
if (e == 1)
cout << "Студент на допущен к сессии"
<< endl;
if (e == 2)
cout << "Некорректные баллы" << endl;
if (e == 3)
cout << "Некорректный номер зачета
или экзамена" << endl;
}
petr.Print();
}
2.2.7. Виртуальные функции и абстрактные классы
Внесем изменения в класс «Учебная группа». Предыдущая версия
класса Group содержала массив объектов класса Student. Допустим,
что в группе могут учиться также и контрактные студенты. Для их
хранения в класс Group можно добавить еще один массив объектов
класса ContractStudent. В этом случае придется в методах класса
Group обрабатывать оба массива по отдельности, хотя, возможно,
одинаковым образом. Принцип наследования, который был применен при
разработке двух классов-студентов, позволяет использовать более
эффективные средства ООП для единообразной обработки студентов
обоих типов. Этим средством является использование виртуальных
функций, которые определяются в базовом классе и переопределяются в
производном.
Механизм использования виртуальных функций основывается на
возможности хранения в переменной, являющейся указателем или
ссылкой на базовый класс, адреса объекта производного класса. По
107
Объектно-ориентированное программирование на С++
petr.SetTest(0, 51.5);
. . .
petr.SetExam(0, 60.0);
. . .
petr.Print();
// перевод к следующему семестру
petr.NextSession();
}
catch (int e)
{
// обработка исключений,
// связанных с невозможностью фиксации
// сдачи зачетов и экзаменов
if (e == 1)
cout << "Студент на допущен к сессии"
<< endl;
if (e == 2)
cout << "Некорректные баллы" << endl;
if (e == 3)
cout << "Некорректный номер зачета
или экзамена" << endl;
}
petr.Print();
}
2.2.7. Виртуальные функции и абстрактные классы
Внесем изменения в класс «Учебная группа». Предыдущая версия
класса Group содержала массив объектов класса Student. Допустим,
что в группе могут учиться также и контрактные студенты. Для их
хранения в класс Group можно добавить еще один массив объектов
класса ContractStudent. В этом случае придется в методах класса
Group обрабатывать оба массива по отдельности, хотя, возможно,
одинаковым образом. Принцип наследования, который был применен при
разработке двух классов-студентов, позволяет использовать более
эффективные средства ООП для единообразной обработки студентов
обоих типов. Этим средством является использование виртуальных
функций, которые определяются в базовом классе и переопределяются в
производном.
Механизм использования виртуальных функций основывается на
возможности хранения в переменной, являющейся указателем или
ссылкой на базовый класс, адреса объекта производного класса. По
107
Страницы
- « первая
- ‹ предыдущая
- …
- 105
- 106
- 107
- 108
- 109
- …
- следующая ›
- последняя »
