- •Часть 2
- •Часть 2
- •Лабораторная работа №1 Тема: “Простейшие классы”
- •Основные понятия
- •Пример 1: Класс, описывающий окружность.
- •Пример 2: Класс, описывающий точку.
- •Пример 3: Класс, описывающий двумерный массив.
- •Задания для самостоятельного выполнения
- •Лабораторная работа №2 Тема: “Конструкторы и деструкторы”
- •Пример 1: Класс, описывающий животное.
- •Пример 2: Класс, описывающий время.
- •Пример 3: Класс, описывающий двумерный массив.
- •Задания для самостоятельного выполнения
- •Лабораторная работа №3 Тема: “Перегрузка операций”
- •Пример 1: Класс, описывающий окружность.
- •Пример 2: Класс, описывающий прямоугольник.
- •Пример 3: Класс, описывающий строку символов
- •Задания для самостоятельного выполнения
- •Лабораторная работа №4 Тема: “Классы динамических структур” Пример 1: Класс, описывающий двунаправленный список
- •Пример 2: Класс, описывающий бинарное дерево
- •Задания для самостоятельного выполнения
- •Лабораторная работа №5 Тема: “Шаблонные классы”
- •Пример : Класс, описывающий множество.
- •Задания для самостоятельного выполнения
- •Лабораторная работа №6 Тема: “Наследование”
- •Пример 1: Классы, описывающие точку, окружность и конус.
- •Задания для самостоятельного выполнения
- •Лабораторная работа №7 Тема: “Полиморфизм и виртуальные функции”
- •Пример : Классы, описывающие точки и окружности.
- •Задания для самостоятельного выполнения
- •Лабораторная работа №8 Тема: “Разреженные массивы” Пример: Класс, описывающий разреженный массив
- •Задания для самостоятельного выполнения
- •Лабораторная работа №9 Тема: “Виртуальные функции в динамических структурах” Пример: Класс, описывающий базовый класс списка и производный класс стека
- •Задания для самостоятельного выполнения
- •Лабораторная работа №10 Тема: “Вычисление выражений, вводимых с клавиатуры”
- •Пример: Шаблонный класс для вычисления значения выражения, вводимого с клавиатуры
- •Пошаговое выполнение программы
- •Задание для самостоятельного выполнения
Лабораторная работа №1 Тема: “Простейшие классы”
Создание консольного приложения в среде
Microsoft Visual Studio 2005
Запустите среду программирования Microsoft Visual Studio 2005.
Вы увидите стартовую страницу данной среды разработки. Далее создайте проект консольного приложения. Для этого выполните команду меню File|New|Project (или нажмите <Ctrl>+<Shift>+<N>). Затем выберите тип проекта (Project types:) Visual C++, если дерево доступных проектов еще не открылось нажмите левой клавишей мыши по значку «+» слева от названия типа проекта. Теперь нажмите Win32, выберите из предоставленных шаблонов (Templates:) Win32 Console Application введите в поле Name: свою фамилию латинскими буквами. В поле Location: C:\Work (см. рисунок).
Создание нового консольного приложения
Перед вами появится окно мастера создания проектов (см. рисунок на следующей странице).
Нажмите кнопку Next>.
В следующем окне в поле Additional Options: установите флажок Empty project (см. рисунок).
Нажмите кнопку Finish.
В следующем окне щелкните правой клавишей мыши по папке Source Files на вкладке Solution Explorer, выберите пункт выпадающего меню Add|New Item…
Перед вами появится окно мастера Add New Item. В появившемся окне в разделе Categories: (находится слева) выберите Code (см. рисунок). Затем в разделе Templates: выберите C++ File (.cpp) и в поле Name введите имя файла: свою фамилию латинскими буквами.
Затем нажмите кнопку Add.
Набирая далее текст программы, периодически нажимайте <Ctrl>+<S>, при этом выполняется команда Save и сохраняется текущее состояние программы. Делать это необходимо во избежание потери результатов своей работы.
Основные понятия
Инкапсуля́ция — свойство языка программирования, позволяющее объединить данные и код в объект и скрыть реализацию объекта от пользователя. При этом пользователю предоставляется только спецификация (интерфейс) объекта. Пользователь может взаимодействовать с объектом только через этот интерфейс.
Инкапсуляция — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, полиморфизмом и наследованием).
Предостережение: Одна из наиболее распространенных ошибок — делать сокрытие реализации только ради сокрытия. Целями, достойными усилий, являются:
предельная локализация изменений при необходимости таких изменений,
прогнозируемость изменений (какие изменения в коде надо сделать для заданного изменения функциональности) и прогнозируемость последствий изменений.
В языке С++ объекты описывают с помощью классов.
Класс представляет собой совокупность данных, описывающих какие-то объекты, и функций, управляющих этими объектами.
Общая схема описания класса:
class Имя_класса
{
тело класса (описание данных и функций)
};
Тело класса обычно состоит из разделов, имеющих различные уровни доступа к своим элементам. Каждый раздел имеет свою метку:
private - закрытые (частные) элементы;
protected - защищенные элементы;
public - открытые (общие) элементы.
Если для первого раздела уровень доступа не указан, то по умолчанию этот раздел имеет уровень доступа private.
Элементы данных класса объявляются точно так же как обычные переменные, за исключением только того, что они не могут быть явно инициализированы. Как правило, элементы данных закрывают от прямого доступа.
Короткие функции, не содержащие циклов, можно определить внутри описания класса, компилятор, по возможности, сделает их встраиваемыми (inline). Определение более сложных функций выносят из тела класса, тогда определение функции выглядит так:
Тип Имя_класса:: имя_функции(параметры)
{
тело функции
}
После того как класс определен, можно объявить объекты, используя имя класса как имя типа.
Описание объекта:
Имя_класа имя_объекта;
Доступ к элементам класса осуществляется с помощью операции «точка»:
имя_объекта.имя_элемента
Если объявляют указатель на объект, то доступ к элементам осуществляется спомощью операции “стрелка”:
имя_объекта -> имя_элемента
При разработке программ, использующих классы, рекомендуется для класса создавать отдельный заголовочный файл, который затем подключать в текст главной программы.
