Языки программирования - концепции и принципы

в отличие от языка Ada,


Наиболее важным рас­ширением является введение классов (classes), которые непосредственно реа­лизуют абстрактные типы данных, в отличие от языка Ada, который использу­ет комбинацию из двух понятий: пакета и приватного типа данных. В следую­щей главе мы обсудим объектно-ориентированное программирование, кото­рое основано на классах; а в этом разделе объясним основные понятия клас-

сов и покажем, как они могут использоваться для определения модулей.

        Класс аналогичен спецификации пакета, которая объявляет один или не-

сколько приватных типов:

class Airplanes {

public:

    struct Airplane_Data {

             char id[80];

              int speed;

              int altitude;

       };

      void new_airplane(const Airplane_Data & a, int & i);

       void get_airplane(int i, Airplane_Data & a) const;



private:

   Airplane_Data database[1000];

    int current_airplanes;

    int find_empty_entry();

 };

Обратите внимание, что имя класса, которое является именем типа, также слу­жит в качестве имени инкапсулирующей единицы; никакого самостоятельного имени модуля не существует. Класс имеет общую и закрытую части. По умолча­нию компоненты класса являются приватными, поэтому перед общей частью необходим спецификатор public. Фактически, при помощи спецификаторов public и private можно задать несколько открытых и закрытых частей вперемежку, в отличие от языка Ada, который требует, чтобы для каждой части был только один список объявлений:

class С {

public:



private:



public:

….

private:

…..

 };

    Объявления в общей части доступны любым модулям, использующим этот класс, в то время как объявления в закрытой части доступны только внутри класса. Спецификатор const в get_airplane — это следующее средство управ­ления, он означает, что подпрограмма не изменяет никакие данные внутри объекта класса. Такие подпрограммы называются инспекторами (inspectors).

   Поскольку класс является типом, могут быть объявлены объекты (кон­станты и переменные) этого класса, так называемые экземпляры класса:


Содержание раздела