
- •Oop и типы данных. Основные особенности ооп.
- •Инкапсуляция. Классы и структуры.
- •9.Подходы к выделению объектов, их свойств и методов оперирования.
- •10. Уточнение характеристик объектов и редактирование их определений.
- •11. Образцы и типовые проекты при ооп.
- •12. Именование объектов и методов. Коллекции отлаженных заготовок.
- •14. Компоненты: объекты, субъекты, аспекты.
- •15. Подходы к декомпозиции программ и накоплению компонент программ
- •16. Контекст исполнения многократно используемых компонент.
- •17. Проблема версифицирования программы в процессе разработки
- •18. Перенос компонент в разные системы //возможно предыдущее подойдет
- •19. Факторизация программ и программных компонент
- •20. Жизненный цикл программ (жцп). Фазы, этапы и стадии разработки программ
- •Сопровождение
- •Классические схемы жцп. Последовательная модель жцп
- •Каскадная модель жцп. Условия завершения фаз жцп
- •Табличная модель Хантера совмещения фаз жцп.
- •Uml. Диаграммы объектов и диаграммы размещения
- •Термины и понятия
- •Общие свойства
- •Содержание
- •Uml. Временные диаграммы
- •Технологичные последовательности и техника самодокументирования.
- •Основные идеи экстремального программирования
- •Многократность и рефакторинг при разработке программ. Многократность
- •Рефакторинг
- •«Парный» эффект и обе5спечение устойчивости разработки.
- •Коллективное владение
- •2. Ссылки, указатели и переменные – отличия при использовании
- •4. Зачем нужны описатели public и private?
- •5. Перегрузка операций. Пример.
- •6. Роль ссылок в борьбе за эффективность. Пример.
- •7. Инициализация объектов. Варианты конструкторов. Пример
- •8. Указатели и вектора. Сравнение стиля доступа к компонентам
- •9. Что дает использование inline?
- •10. Производные классы. Наследование.
- •11. Деструкторы. Зачем они нужны?
- •12. Друзья
- •13. Левосторонние значения (lvalue)
- •14. Описатель const. Его влияние на присваивание значений. Пример
- •15. Объединение типов данных. Пример полезного применения
- •16. Управление видимостью членов класса и доступам к элементам объекта.
- •17. Ссылка на себя //this
- •18. Освобождение памяти от лишних объектов
- •19. Порядок выполнения конструкторов и деструкторов
9.Подходы к выделению объектов, их свойств и методов оперирования.
Одним из подходов, обеспечивающих структурирование математической модели и упрощение ее программирования, является объектный подход, в котором реальный процесс или система представляются совокупностью объектов, взаимодействующих друг с другом. Понятию “объект” сопоставляют ряд дополняющих друг друга определений. Ниже приведены некоторые из них. - Объект - это осязаемая реальность, характеризующаяся четко определяемым поведением. - Объект - особый опознаваемый предмет, блок или сущность (реальная или абстрактная), имеющая важное функциональное назначение в данной предметной области. Объект может быть охарактеризован структурой, состоянием объекта, его поведением и индивидуальностью. Состояние объекта определяется перечнем всех возможных (обычно статических) свойств и текущими значениями (обычно динамическими) каждого из этих свойств. Свойства объекта характеризуются значениями его параметров. Поведение объекта описывает, как объект воздействует на другие объекты или как он подвергается воздействию со стороны других объектов с точки зрения изменения его собственного состояния и состояния других объектов. Говорят также, что поведение объекта определяется его действиями. Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию называют операцией. В объектно-ориентированных языках программирования операции называют методами. Можно выделить пять типов операций: - конструктор, создание и инициализация объекта; - деструктор, разрушающий объект; - модификатор, изменяющий состояние объекта; - селектор для доступа к переменным объекта без их изменения; - итератор для доступа к содержанию объекта по частям в определенной последовательности. Известна и другая классификация методов объекта, когда выделяют функции управления, реализации, доступа и вспомогательные функции.
10. Уточнение характеристик объектов и редактирование их определений.
Типы данных.
Тип данных определяет множество значений, набор операций, которые можно применять к таким значениям и, возможно, способ реализации хранения значений и выполнения операций. Любые данные, которыми оперируют программы, относятся к определённым типам. Концепция типа данных появилась в языках программирования высокого уровня как естественное отражение того факта, что обрабатываемые программой данные могут иметь различные множества допустимых значений, храниться в памяти компьютера различным образом, занимать различные объёмы памяти и обрабатываться с помощью различных команд процессора. Итак, тип данных определяет характеристики объекта: внутреннюю структуру, размер выделяемой памяти, множество значений и доступные операции над ним. Условно типы можно разделить на три категории: • простые или базовые типы;
• ссылочные типы, т.е. указатели, ссылки и массивы. Значением переменных этих типов являются адреса в памяти, по которым расположены объекты других типов;
• агрегатные типы, т.е. структуры и классы, позволяющие объединить элементы различных типов и методы работы с ними в один тип.
Для работы с типами С++ предоставляет следующие возможности:
• определить размер типа в байтах оператором sizeof, в качестве аргумента может быть имя типа, имя переменной или более сложное выражение;
• задать альтернативное имя (синоним) существующему типу оператором typedef;
• средства преобразования одних типов в другие;
• механизм определения типа объекта в реальном времени (RTTI);
• оператор typeof позволяет задать тип переменной по указанному выражению. Старые компиляторы могут не поддерживать эту возможность;
• оператор auto позволяет задать тип переменной по инициализирующему выражению, и в этом смысле более удобнее чем typeof. Однако современные компиляторы еще не поддерживают это возможность (в старом стандарте auto является спецификатором времени жизни переменной). Поэтому можно воспользоваться соответствующими макросами из библиотеки Boost.
базовые типы
Следующие типы относятся к базовым:
• void - пустой тип, используется для создания указателей и указания того, что функция не возвращает значений; • int - целочисленный тип. Спецификторы размера short и long уточняют размер: два байта и четыре соответственно. Спецификаторы знака signed и unsigned определяют использовать ли последний бит для знака. Этот тип является типом по умолчанию;
• float - тип для вещественных чисел;
• double - тип для вещественных чисел двойной точности;
• bool - логический тип. Значение 0 означает ложь, ненулевое значение истину;
• char - символьный тип. Также этот тип может использоваться как целочисленный тип, к нему применимы спецификаторы знака;
• wchar_t - аналогично предыдущему, но для юникод символов;
• __int64, long long - тип для 64-битных целых чисел.
Переменные Под переменной понимается именованная область памяти, содержащая объект заданного типа. Задание начального значения переменной при ее создании называется инициализацией. Не все компиляторы по умолчанию инициализируют объекты нулями. Поэтому если предполагается, что исходник будет компилироваться на различных компиляторах, лучше инициализировать нулями в ручную, где это необходимо.