Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры ТП!!.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
459 Кб
Скачать
☆

15. Объектно-ориентированное программирование. Классы. Определение спецификации доступа.

ООП – методология, основанная на представлении программы в виде совокупности объектов, каждый из которых является реализацией определённого класса. Классы образуют иерархию на принципах наследования.

Класс – абстракция, определяющая наиболее общие свойства однотипных объектов.

Объект – реализация класса, имеющая определённые значения основных свойств.

ООП базируется на 3 основных принципах: инкапсуляция, наследование, полиморфизм.

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

Для реализации инкапсуляции в С++ введён тип class, в соответствии с которым данные класса и функции класса (член-данные и член-функции) могут быть распределены по 3 областям видимости:

Private – член-данные и член-функции, принадлежащие структуре, доступны только член-функциям текущего класса.

Protected – член-данные и член-функции, включённые в состав структуры, доступны член-функциям текущего класса и его прямым наследникам. Для последующих порождений они являются скрытыми.

Public - член-данные и член-функции, включённые в состав структуры, доступны член-функциям других классов и в любой точке программы, где имеется представитель класса через имя объекта.

По умолчанию все члены класса в области видимости private. Считается, что лучше все член-данные определить как скрытые, т.к. при это обеспечивается: защита от несанкционированного доступа к данным или от изменения их; при необходимости корректировки член-данного в определении класса требуется произвести изменение только в соответствующей член-функции.

16. Объектно-ориентированное программирование. Полиморфизм.

ООП – методология, основанная на представлении программы в виде совокупности объектов, каждый из которых является реализацией определённого класса. Классы образуют иерархию на принципах наследования.

Класс – абстракция, определяющая наиболее общие свойства однотипных объектов.

Объект – реализация класса, имеющая определённые значения основных свойств.

ООП базируется на 3 основных принципах: инкапсуляция, наследование, полиморфизм.

Если один и тот же объект может по-разному использоваться в зависимости от обстоятельств, то он обладает полиморфизмом.

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

Виртуальная функция может быть определена в рамках абстрактного класса; в этом случае функция должна быть объявлена как чистая.

Virtual void A( )=0

Класс, имеющий в своём составе чистые виртуальные функции, называется абстрактным.

Следует помнить, что при объявлении виртуальной функции:

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

    2. Если в родительском классе объявлена чистая виртуальная функция, то в порождённом она должна быть либо определена, либо вновь объявлена чистой.

    3. Если в базовом классе задано определение виртуальной функции, то в порождённом должно быть либо собственное определение этой функции, либо будет использована функция класса родителя.

Вызов виртуальной функции не является виртуальным, если:

  1. функция вызывается через указатель или ссылку.

  2. функция вызывается через указатель или ссылку, но с уточнением имени класса

  3. виртуальная функция вызывается в конструкторе порождённого класса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]