Производные классы в C - Реферат

бесплатно 0
4.5 40
Объектно-ориентированный подход к проектированию программных систем. Простое наследование и доступ к наследуемым компонентам. Конструкторы производных классов, объемлющие классы, понятие об алгоритме и операторе. Примеры реализации связных списков.


Аннотация к работе
Использование этого подхода дает возможность на порядок по сравнению с обычным директивным программированием сократить трудоемкость отладки программ и внесения изменений в программу при ее последующем развитии. При этом коренным образом ломается понятие об алгоритме как о последовательности выполнения операторов языка программирования, записанных друг за другом. В объектно-ориентированных программах все данные разбиваются на отдельные группы и строго связываются с программами (функциями), предназначенными для обработки этих данных.В C существуют специальные средства передачи всех определяемых пользователем свойств класса (как данных, так и функций-методов) другим классам, наследующим свойства данного. Один класс может наследовать все составляющие другого класса. Класс, принимающий эти компоненты, называется производным классом. Функции-методы, которые могут понадобиться при работе с объектами этого класса, такие, как: “ЗАДАТЬФАМИЛИЮ”, “ДАТЬГОДРОЖДЕНИЯ”, “ВЫВЕСТИНАЭКРАНФИО” и т.д., также будут определены в этом классе. Если в программе понадобится определить какой-либо другой объект, скажем, “Работник” или “Студент”, становится очевидным, что этот класс будет частным случаем класса “Человек”, поскольку все компоненты класса “Человек” необходимо полностью переписать в класс “Работник” или “Студент”.Доступность различных составляющих (компонентов) класса в производном классе определяется соответствующим ключем доступа, задаваемым словами private, public или protected. Класс может быть унаследован как public или как private. При этом модификатор private трансформирует компоненты базового класса с атрибутами доступа public и protected в компоненты private производного класса, в то время как private-компоненты становятся недоступны в производном классе. Разные типы наследования влияют только на доступ по умолчанию компонентов базового класса в производном классе. Доступ наследования Доступ компонентов в базовом классе Доступность компонентов базового класса в производном классе public public protected private public protected недоступен private public protected private private private недоступенДля некоторых производных классов требуются конструкторы. Если у базового класса есть конструктор, он должен вызываться при объявлении объекта, и если у этого конструктора есть параметры, их необходимо предоставить. Параметры конструктора базового класса указываются в определении конструктора производного класса. Вызов конструктора базового класса следует непосредственно после имени конструктора производного класса, перед открывающей фигурной скобкой. Конструктор производного класса может инициализировать protected-и public-компоненты базового класса, не выполняя вызова конструктора.Сравним производные классы с классом Level1, который объемлет, а не наследует объект класса Level0. Для таких классов используют название "объемлющие классы", например: class Level1 {public: Level0 L0; // Компонентная функция void Level1::f1() { Защищенный (protected) компонент Level0::b не доступен для более объемлющего класса. Основное различие между объемлющим и производным классами состоит в способе доступа к наследуемым элементам.#define IMAX 4 class List{ // Класс "Список" protected: float Value; // Значение эл-та списка List *Next; // @ след. эл-та списка public: void ADDELLIST(char); List *CURREL, // Текущий эл-т списка List *CURREL, // Текущий эл-т списка List *CURREL; // Текущий эл-т спискаОбъекты в программе работают как слаженный коллектив вполне самостоятельных программ, которые сами знают, когда им в зависимости от текущей ситуации нужно начать работу, когда ее временно приостановить, и наконец, когда совсем покинуть коллектив программ, не оставив о себе никакого воспоминания кроме необходимых полезных результатов работы. Как правило, каждый объект, начиная свою работу, заказывает у операционной системы оперативную память под свои данные, а заканчивая работу, возвращает эту память назад системе. Для того, чтобы объекты четко знали свое место и полномочия в едином коллективе, и не выполняли одну и ту же работу, они подвергаются специальной классификации, результатом которой является выделение классов объектов.

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

Введение

1. Простое наследование

2. Доступ к наследуемым компонентам

3. Конструкторы производных классов

4. Объемлющие классы

5. Примеры связных списков

Заключение

Список литературы

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

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

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

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

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

Список литературы
1. М.Уэйт, С.Прата, Д.Мартин Язык Си: Пер с англ.-М.: Мир, 2007.-463 с.,ил.

2. Уинер Р. Язык Турбо Си: Пер с англ.-М.: Мир, 2010.-384 с.,ил.

3. В.В. Подбельский. Язык C : Учебное пособие. - Москва: Финансы и статистика, 199 560с.

4. Ирэ Пол. Объектно-ориентированное программирование с использованием C : Пер. с англ. - Киев: НИИПФ ДИАСОФТ Лтд, 199 480с.

5. Т. Фейсон. Объектно-ориентированное программирование на Borland C 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с.

Размещено на
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?