
- •1 Атрибуты private, public, protected.
- •2 Виртуальные метода и полиморфизм.
- •7 Заголовочный файл
- •8 Инкапсуляция , полиморфизм и наследование
- •9 Консольное приложение.
- •10Конструктор и деструктор
- •12) Множественное наследование
- •14) Наследование классов и производные классы
- •15) Обработка исключений
- •16) Объект Button
- •17) Объект CheckBox.
- •18) Объект ListBox.
- •19) Объект RadioGroup.
- •20) Объект TextBox (или Edit).
- •21) Объекты, классы, экземпляры класса. Пример.
- •29. Понятие о техническом задании на разработку программы.
- •31) Преимущества объектно-ориентированного программирования.
- •Простые типы данных
- •41. Управляемые (.Net) и неуправляемые объекты
- •Управляемый код. Осознать разницу
12) Множественное наследование
C++ позволяет порождать класс из нескольких базовых классов. Когда ваш класс наследует характеристики нескольких классов, вы используете множественное наследование.
ПОСТРОЕНИЕ ИЕРАРХИИ КЛАССОВ
При использовании наследования в C++ для порождения одного класса из другого возможны ситуации, когда вы порождаете свой класс из класса, который уже, в свою очередь, является производным от некоторого базового класса. Например, предположим, вам необходимо использовать класс сотputer базовый для порождения класса workstation.
Конструктор класса workstation просто вызывает конструктор класса computer, который в свою очередь вызывает конструкторы классов сотрuter_screen и mother_board. В результате класс work_station наследует характеристики всех трех классов.
13. Назначение методов new и gcnew.
Создание нового экземпляра класса.
Операция new позволяет получить память из кучи (это такой участок памяти) во время выполнения программы. При этом Вы получаете указатель на начало участка выделенной памяти.
gcnew - Это аналог new.
14) Наследование классов и производные классы
Представление о наследовании
Наследование представляет собой способность производного класса наследовать характеристики существующего базового класса. Простыми словами это означает, что, если у вас есть класс, чьи элементы данных или функции-элементы могут быть использованы новым классом, вы можете построить этот новый класс в терминах существующего (или базового) класса. Новый класс в свою очередь будет наследовать элементы (характеристики) существующего класса. Использование наследования для построения новых классов сэкономит вам значительное время и силы на программирование. Объектно-ориентированное программирование широко использует наследование, позволяя вашей программе строить сложные объекты из небольших легко управляемых объектов.
Наследование представляет собой способность производить новый класс из существующего базового класса.
Производный класс — это новый класс, а базовый класс — существующий класс.
Когда вы порождаете один класс из другого (базового класса), производный класс наследует элементы базового класса.
Для порождения класса из базового начинайте определение производного класса ключевым словом class, за которым следует имя класса, двоеточие и имя базового класса, например class dalmatian: dog.
15) Обработка исключений
Чтобы комфортно работать с исключениями в С++ вам нужно знать лишь три ключевых слова:
try (пытаться) - начало блока исключений;
catch (поймать) - начало блока, "ловящего" исключение;
throw (бросить) - ключевое слово, "создающее" ("возбуждающее") исключение.
Catch может "ловить" любой тип данных, так же как и throw может "кинуть" данные любого типа. Т.е. throw AnyClass(); будет правильно работать, так же как и catch (AnyClass &d) {}; .
catch может "ловить" данные любого типа, но вовсе не обязательно при это указывать переменную. Т.е. прекрасно будет работать что-нибудь типа этого:
catch(dumbclass) { } так же, как и catch(dumbclass&) { }
Так же можно "поймать" и все исключения: catch(...) { }
Троеточие в этом случае показывает, что будут пойманы все исключения. При таком подходе нельзя указать имя переменной. В случае, если "кидаются" данные нестандартного типа (экземпляры определенных вами классов, структур и т.д.), лучше "ловить" их по ссылке, иначе вся "кидаемая" переменная будет скопирована в стек вместо того, чтобы просто передать указатель на нее. Если кидаются данные нескольких типов и вы хотите поймать конкретную переменную (вернее, переменную конкретного типа), то можно использовать несколько блоков catch, ловящих "свой" тип данных: