Объектно-ориентированное программирование на C++. Андрианова А.А - 98 стр.

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
bool Student::PassedTests()
{
for(int i = 0; i < countTests; i++)
if (tests[i] < 51)
return false;
return true;
}
В производном классе ContractStudent нужна еще проверка
отсутствия задолженности по оплате. Поэтому переопределим метод
PassedTest() в классе ContractStrudent. В нем после
определения отсутствия задолженности по оплате вызываем
одноименный метод базового класса, чтобы выяснить, имеются ли у
студента академические задолженности. Это осуществляется с помощью
указания имени базового класса и "::" перед именем метода при вызове:
// метод проверки допуска к экзаменационной сессии
// для класса ContractStudent
bool ContractStudent::PassedTests()
{
// проверка наличия задолженности по оплате
if (credit > 0)
return false;
// вызов метода базового класса для проверки,
// сданы ли зачеты
return Student::PassedTests();
}
Приведем полный программный код приложения, использующего
классы Student и ContractStudent:
// файл "Student.h"
#ifndef _STUDENT_H_
#define _STUDENT_H_
// объявление класса "Студент"
class Student
{
protected:
char fio[100]; // фамилия, имя, отчество
int dayBirth; // дата рождения
int monthBirth;
int yearBirth;
int numberOfTestBook; // номер зачетной книжки
double averageMark; // средний балл успеваемости
98
                              Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
     bool Student::PassedTests()
     {
          for(int i = 0; i < countTests; i++)
               if (tests[i] < 51)
                    return false;
          return true;
     }

    В производном классе ContractStudent нужна еще проверка
отсутствия задолженности по оплате. Поэтому переопределим метод
PassedTest() в классе ContractStrudent. В нем после
определения отсутствия задолженности по оплате вызываем
одноименный метод базового класса, чтобы выяснить, имеются ли у
студента академические задолженности. Это осуществляется с помощью
указания имени базового класса и "::" перед именем метода при вызове:
     // метод проверки допуска к экзаменационной сессии
     // для класса ContractStudent
     bool ContractStudent::PassedTests()
     {
          // проверка наличия задолженности по оплате
          if (credit > 0)
               return false;
          // вызов метода базового класса для проверки,
          // сданы ли зачеты
          return Student::PassedTests();
     }

    Приведем полный программный код приложения, использующего
классы Student и ContractStudent:

     // файл "Student.h"

     #ifndef _STUDENT_H_
     #define _STUDENT_H_

     // объявление класса "Студент"
     class Student
     {
     protected:
          char fio[100]; // фамилия, имя, отчество
          int dayBirth; // дата рождения
          int monthBirth;
          int yearBirth;
          int numberOfTestBook; // номер зачетной книжки
          double averageMark; // средний балл успеваемости


98