class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

STL

основы

введение
Инструментарий
Проекты в C++
Комментарий
Утверждения
Идентификаторы
Область видимости
Литералы
Типы данных, переменные
Константы, перечисления
Выражения и операции
Агрегатные типы
Указатели
Ссылки
Массивы
Строки
Управляющие операторы
Функции
Аргументы функции

ООП

Терминология
Определение классов
Константные методы
Статические члены
Наследование
Инкапсуляция
Полиморфизм
Инициализация и уничтожение объектов
this

прочее

шаблоны
макросы
динамическая память
исключения
rtti

Справочник по C++

ООП - терминология

Класс является расширением агрегатных типов языка С++ и позволяет объединить данные и код. Таким образом, он наиболее идеально подходит для описания реальных объектов или их абстракций, где члены данных являются свойствами объекта, а члены функции или методы описывают поведение объекта.

Сложные классы содержат особые методы называемые конструкторами и деструкторами. Первые предназначены для инициализации создаваемых объектов, вторые вызываются при уничтожении объекта.

Инкапсуляция - сокрытие реализации класса от его пользователя. Другими словами, пользователь имеет доступ только к открытым членам класса. К закрытым членам имеет доступ только сам объект. Это позволяет избежать ошибки, связанные с нечаянным изменением членов данных класса.

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

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

Использование всего вышесказанного поясним на стандартном примере. Есть некий класс Figure с методом draw - родительский класс.

Также определены его дочерние классы Square, Circle, Triangles, которые имеют собственные реализации метода draw. У Square метод выводит квадрат, у Circle - окружность, у Triangles - треугольник. Тогда, если нужно вывести какое-то множество квадратов, треугольников и окружностей, нам не нужно создавать три различных массива под каждый тип фигуры. Достаточно создать массив указателей на тип Figure, а его элементам присвоить адреса Square, Circle, Triangles объектов, а потом вывести все элементы массива.

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


Рейтинг@Mail.ru