Ответы на билеты (Билет 17)

Посмотреть архив целиком

Билет №17

  1. Стандартизация информационных технологий. Классификация стандартов. Понятия и определения.

  2. Деструкторы. Назначение, синтаксис, понятия и определения.

  3. Интерфейсы. Свойства, применение. Производные интерфейсы.


1.

Стандартизация в области информационных технологий.



Первооснова построения информационного общества, электронного распространения информации и знаний - информационные и коммуникационные технологии.

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

Создание и внедрение информационно- телекоммуникационных систем (ИС) различных уровней и назначений на основе использования современных информационных технологий (ИТ), интеграции информационных, вычислительных, телекоммуникационных ресурсов и применения технологии открытых систем - это сложная, комплексная, межотраслевая, многоплановая и многоаспектная проблема. В ее решении одно из ключевых мест занимает стандартизация в области ИТ и прежде всего внедрение методов функциональной стандартизации. Эти методы позволяют с помощью функциональных стандартов и профилей (включая профили на конкретные проекты ИС) идентифицировать группы базовых стандартов вместе с факультативными возможностями, требованиями и параметрами, необходимыми для выполнения функций, реализуемых конкретными ИС в разных предметных областях деятельности.

В настоящее время подавляющее большинство ИС всех классов и назначений строятся на основе технологии открытых систем. Ее суть состоит в использовании стандартных интерфейсов между разнородными аппаратными и программными компонентами систем. Технология открытых систем лежит в основе создания инфраструктуры всех уровней - от предприятия и отрасли до национальной информационной инфраструктуры. Кроме того, она обеспечивает интеграцию с мировым информационным пространством и, тем самым, с мировой экономикой. Внедрение принципов открытых систем на всех этапах жизненного цикла проектирования ИС базируется на стандартизации информационных технологий, являющейся интеграционным механизмом и мощным средством управления процессами развития информатизации.

Научно - техническая политика в области стандартизации информационных технологий и проектирования систем в России заключается в следующем:

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




2. Деструкторы. Назначение, синтаксис, понятия и определения.

При написании длинных программ в некоторых частях программы обычно требуется инициализация. Необходимость в инициализации еще более часто проявляется при работе с объектами.

Действительно, если обратиться к реальным проблемам, то, фактически, для каждого создаваемого вами объекта требуется какого-то вида инициализация. Для разрешения этой проблемы в C++ имеется функция-конструктор(constructor function), включаемая в описание класса. Конструктор класса вызывается всякий раз при создании объекта этого класса. Таким образом, любая необходимая объекту инициализация при наличии конструктора выполняется автоматически.

Конструктор имеет то же имя, что и класс, частью которого он является, и

не имеет возвращаемого значения. Например, ниже представлен небольшой класс с конструктором:

#include

using namespace std;

class myclass {

int a ;

public:

myclass (); // конструктор

void show() ;

myclass : :myclass ( )

{

cout << "В конструкторе\п";

a-10;

)

void myclass :: show ()

{

cout << a;

Глава 2. Введение в классы _ 45

int main ( )

{

myclass ob;

ob. show)) ;

return 0;

В этом простом примере значение а инициализируется конструктором

myclass(). Конструктор вызывается тогда, когда создается объект ob. Объект, в

свою очередь, создается при выполнении инструкции объявления объекта. Важ-

но понимать,что в C++ инструкция объявления переменной янляется

"инструкцией действия". При программировании на С инструкции объявления

переменных понимаются просто как создание переменных. Однако в C++, по-

скольку объект может иметь конструктор, инструкция объявления переменной

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

Обратите внимание, как определяется конструктор myclassQ. Как уже гово-

рилось, он не имеет возвращаемого значения. В соответствии с формальны-

ми правилами синтаксиса C++ конструктор не должен иметь возвращаемого

значения.

Для глобальных объектов конструктор объекта вызывается тогда, когда начи-

нается выполнение программы. Для локальных объектов конструктор вызыва-

ется всякий раз при выполнении инструкции объявления переменной.

Функцией, обратной конструктору, является деструктор (destructor). Эта

функция вызывается при удалении объекта. Обычно при работе с объектом

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

мер, при создании объекта для него выделяется память, которую необходи-

мо освободить при его удалении. Имя деструктора совпадает с именем

класса, но с символом ~ (тильда)в начале. Пример класса с деструктором:

#include

using namespace std;

class myclass {

int a;

public:

myclass (); // конструктор

-myclass (); // деструктор

void show() ;

}

myclass : :myclass ( )

{

cout << "Содержимое конструктора\n";

a = 10;


myclass::~myclass ( )

{

cout << "Удаление... \n";

}

void myclass::show()

{

cout << a << "\n";

}

int main()

myclass ob;

ob.show ();

return 0;

}

Деструктор класса вызывается при удалении объекта. Локальные объекты

удаляются тогда, когда они выходят из области видимости. Глобальные объ-

екты удаляются при завершении программы.

Адреса конструктора и деструктора получить невозможно.


3) Интерфе́йс (от лат. inter — между и лат. faceповерхность) — это семантическая и синтаксическая конструкция в коде программы, используемая для специфицирования услуг, предоставляемых классом или компонентом.

Интерфейс определяет границу взаимодействия между классами или компонентами, специфицируя определенную абстракцию, которую осуществляет реализующая сторона. В отличие от большинства других видов интерфейсов, интерфейс в ООП является строго формализованным элементом объектно-ориентированного языка и, в качестве семантической конструкции, широко используется кодом программы. К примеру, интерфейс «Cloneable» может описать абстракцию клонирования (создания точных копий) объектов, специфицировав метод «Clone». Тогда любой класс, способный создать свою копию, может задекларировать себя как Cloneable и предоставить метод Clone. Причем вызывающей стороне достаточно знать только описание интерфейса. Таким образом, интерфейсы позволяют рассоединить части программной системы в модули без взаимной зависимости кода.

С одной стороны, интерфейс — это контракт, который обязуется выполнить класс, реализующий его. Один класс может реализовать несколько интерфейсов одновременно.
С другой стороны,
интерфейс — это тип данных, потому что его описание достаточно четко определяет свойства объектов, чтобы наравне с классом типизировать переменные.

Роль интерфейсов в C++ выполняют абстрактные классы.



Виртуальные функции и абстрактные классы

Класс является абстрактным, если он содержит хотя бы одну чистую виртуальную функцию.

Абстрактный класс – это класс, который может использоваться лишь в качестве базового класса для некоторого другого класса. Класс является абстрактным, если он содержит хотя бы одну чистую виртуальную функцию.

Виртуальная функция называется чистой, если в объявлении функции внутри объявления класса задан чистый спецификатор = 0.

class Shape

{ public:

virtual void draw() = 0; // Чистая виртуальная функция

...

};

Абстрактный класс нельзя употреблять в качестве типа объектов, типа параметров функций, типа возвращаемого функцией значения или как тип при явном приведении типа. Можно, однако, объявлять указатели и ссылки на абстрактный класс.



Shape s; // Ошибка: объект абстрактного класса

Shape *s; // Всё правильно

Shape f(); // Ошибка

void f(Shape s); // Ошибка

Shape& f(Shape &s); // Всё правильно



Чистые виртуальные функции наследуются и остаются чистыми виртуальными функциями.


Интерфейсы.

Интерфейс трактуется как набор всех потенциально возможных операций, которые могут быть выполнены объектом по заявкам клиентов. Вводится отношение "объект удовлетворяет интерфейсу". Оно имеет место, если рассматриваемый объект может быть указан как целевой в любой возможной заявке, которая адекватна данному интерфейсу. Интерфейсы могут иметь атрибуты. Наличие атрибута логически эквивалентно объявлению пары функций доступа: для извлечения и для установки значения атрибута, соответственно.

Интерфейсы в модели типизируются. Под типом данного интерфейса понимается такой тип, которому удовлетворяет любой объект, удовлетворяющий рассматриваемому конкретному интерфейсу.

На интерфейсы распространяется действие механизмов наследования. Интерфейс, наследующий свойства другого интерфейса, называется производным от этого другого интерфейса, который, в свою очередь, называется базовым по отношению к нему. В производном интерфейсе могут объявляться новые элементы или переопределяться наследуемые. Интерфейс может быть производным от нескольких базовых интерфейсов. На множестве определенных интерфейсов могут, таким образом, поддерживаться иерархии отношений наследования. Наследование интерфейсов есть композиционный механизм, позволяющий объекту поддерживать множественные интерфейсы. Главный (principal) интерфейс является наиболее специализированным интерфейсом, поддерживаемым объектом. Этот интерфейс состоит из всех операций в транзитивном замыкании графа наследования интерфейсов.

Введено понятие реализации объекта, которое трактуется следующим образом. Метод представляет собой программу, исполняемую для реализации сервиса. С методом связаны формат метода, определяющий набор исполнительных механизмов для интерпретации метода, и исполнительный механизм - абстрактная машина, интерпретирующая методы определенных форматов. Реализация объекта представляет собой определение, содержащее информацию, необходимую для создания объекта и для участия объекта в обеспечении надлежащего набора сервисов. Реализация обычно включает определения методов, оперирующих состоянием объекта.


Понятие интерфейса

Из предыдущих глав вы уже знаете, что собой представляет объект. Представьте, что получится, если из объекта убрать поля и код всех методов. Останется лишь интерфейс — заголовки методов и описания свойств. Схематично понятие интерфейса можно представить в виде формулы:

Интерфейс = Объект - Реализация

В отличие от объекта интерфейс сам ничего "не помнит" и ничего "не умеет делать"; он является всего лишь "разъемом" для работы с объектом. Объект может поддерживать много интерфейсов и выступать в разных ролях в зависимости от того, через какой интерфейс вы его используете. Совершенно различные по структуре объекты, поддерживающие один и тот же интерфейс, являются взаимозаменяемыми. Не важно, есть у объектов общий предок или нет. В данном случае интерфейс служит их дополнительным общим предком.



Случайные файлы

Файл
54491.doc
41667.rtf
55969.rtf
151662.rtf
36268.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.