Язык программирования C++. Вводный курс




Резюме - часть 2


Упражнение 17.3

Рассмотрите приведенные члены иерархии классов для поддержки библиотеки из упражнения 17.1 (раздел 17.1). Выявите возможные кандидаты на роль виртуальных функций, а также те члены, которые являются общими для всех предметов, выдаваемых библиотекой, и, следовательно, могут быть представлены в базовом классе. (Примечание: LibMember – это абстракция человека, которому разрешено брать из библиотеки различные предметы; Date – класс, представляющий календарную дату.)

class Library

{

public:

   bool check_out( LibMember* );   // выдать

   bool check_in ( LibMember* );   // принять назад

   bool is_late( const Date& today );  // просрочил

   double apply_fine();                // наложить штраф

   ostream& print( ostream&=cout );

   Date* due_date() const;             // ожидаемая дата возврата

   Date* date_borrowed() const;        // дата выдачи

   string title() const;               // название

   const LibMember* member() const;    // записавшийся

};

Упражнение 17.4

Идентифицируйте члены базового и производных классов для той иерархии, которую вы выбрали в упражнении 17.2 (раздел 17.1). Задайте виртуальные функции, а также открытые и защищенные члены.

Упражнение 17.5

Какие из следующих объявлений неправильны:

class base { ... };

(a) class Derived : public Derived { ... };

(b) class Derived : Base { ... };

(c) class Derived : private Base { ... };

(d) class Derived : public Base;

(e) class Derived inherits Base { ... };




Содержание  Назад  Вперед