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

идентифицирует каждую подпрограмму как принадлежащую


Опера­ция разрешения контекста «::» идентифицирует каждую подпрограмму как принадлежащую конкретному классу:

                   // Некоторый файл

#include "Airplanes.h"                            // Содержит объявление класса

void Airplanes::new_airplane(const Airplane_Data & a, int & i)

{



}

void Airplanes::get_airplane(int i, Airplane_Data & a) const

{

….

}

int Airplanes::find_empty_entry()

{





}

Обратите внимание, что внутренняя подпрограмма find_empty_entry должна быть объявлена внутри (в закрытой части) класса так, чтобы она могла обра­щаться к приватным данным.

 

 

Пространство имен

Одним из последних добавлений к определению языка C++ была конструк­ция namespace (пространство имен), которая дает возможность программи­сту ограничить область действия других глобальных объектов так же, как это делается с помощью пакета в языке Ada. Конструкция, аналогичная use-пред­ложению в Ada, открывает пространство имен:

namespace N1 {

      void proc();                                              //Процедура в пространстве имен

};

namespace N2 {

void proc();                                                   // Другая процедура

};

N1:: proc(),                                                 //Операция разрешения контекста для доступа

using namespace N1 ;

proc();                                                        // Правильно

using namespace N2;

proc();                                                         //Теперь неоднозначно

К сожалению, в языке C++ не определен библиотечный механизм: объявле­ния класса могут использоваться совместно только через включаемые файлы. Группа разработчиков должна организовать процедуры для обновления включаемых файлов, отдавая предпочтение программным инструменталь­ным средствам, чтобы оповещать членов группы о том, что две компиляции не используют одну и ту же версию включаемого файла.

13.6.

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