Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы.doc
Скачиваний:
32
Добавлен:
04.03.2016
Размер:
317.44 Кб
Скачать

Контрольные вопросы

  1. Что такое массив?

  2. Что такое индекс массива?

  3. Как объявить массив в программе?

  4. Какой индекс первый, а какой последний в SomeArray[25]?

  5. В чем смысл ошибки обращения к несуществующему элементу массива?

  6. Как объявить многомерный массив?

  7. Сколько элементов в массиве SomeArray[10][5][20]?

  8. Как выполнить инициализацию массива?

  9. Как можно переходить от одного элемента массива к другому, используя арифметику указателей?

  10. Как передаются массивы в функции : по значению или по ссылке? Что это означает?

  11. Возможны ли массивы объектов?

  12. Что такое массив указателей?

  13. Как объявить / уничтожить массив в свободной памяти?

  14. Что такое строка С-стиля? Каким символом она должна заканчиваться?

  15. Какой заголовочный файл необходим для работы со строками С-стиля?

  16. Как ввести с клавиатуры строку, состоящую из нескольких слов?

  17. Как узнать длину строки и ее максимальный размер?

  18. Как присвоить значение одной строки другой?

  19. Как объединить одну строку с другой?

  20. Как сравнить две строки между собой?

  21. Обязательно ли использовать библиотеку для работы со строками?

  22. В чем преимущество использования строковых классов?

  23. Какие основные операции применяются в строковых классах?

  24. Как называется заголовочный файл строкового класса вашего компилятора?

  25. Для чего применяются классы защищенных массивов?

  26. Напишите прототип оператора индексации?

  27. Почему оператор индексации должен возвращать ссылку?

  28. В чем недостаток массивов? Каким способом он решается?

  29. В чем разница между односвязным и двусвязным списком?

  30. Какую информацию должен хранить узел связного списка?

  31. Какие члены-данные и функции обязательно должны быть в классе связного списка?

  32. В чем преимущество использования STL?

Література

  1. Джесс Либерти. Освой самостоятельно С++. 3 и-е. М.: Вильямс. – 2000.

  2. Г. Шилдт. Полный справочник по С++. 4 и-е. – М.: Вильямс. – 2003.

  3. Т.А. Павловская. С/С++. Программирование на языке высокого уровня. ПИТЕР-2002

  4. С.В. Глушаков. Практикум по С++. ФОЛИО – 2006

  5. Х. Дейтел, П. Дейтел. Как программировать на С++.

  6. Ю.Л. Кетков. Введение в языки программирования C и C++ http://www.intuit.ru/department/pl/ccpp/

  7. А.Л. Фридман. Язык программирования C++ http://www.intuit.ru/department/pl/cpp/

Лабораторная работа 12

Тема: Наследование

Цель:

Теоретические сведения

См. лекция №12

Ход работы

  1. Напишите объявление класса Rectangle (прямоугольник), который является производным от Square (квадрат), который, в свою очередь – производный от Shape(фигура). В классе Shape объявите следующие защищенные члены-данные : цвет линий фигуры и толщина ее линий и напишите 2 конструктора - по умолчанию и с параметрами. В классах Square и Rectangle объявите закрытые (защищенные) члены-данные для хранения размеров каждой из фигур, несколько конструкторов, вызывающих конструкторы базового класса, а также методы для вычисления площади и периметра фигур. В классе Rectangle обязательно используйте перекрывание методов базового класса Square. При необходимости добавьте в классы методы доступа. Напишите главную программу, в которой выполните создание объектов-фигур различных типов и их обработку.

  2. Напишите объявления для следующих диаграмм классов, включив в него члены-данные, конструкторы по умолчанию и с параметрами , методы доступа, методы ввода-вывода для клавиатуры и экрана и т.д. :

А)

В)

  1. Измените классы Shape->Square->Rectangleиз предыдущего задания на виртуальные. Для этого добавьте в классShapeпустые методы для вычисления площади и периметра и перекройте их виртуальными методами в производных классах. Не забудьте также и про виртуальные деструкторы.

  2. Объявите в главной программе два указателя типа Shapeи создайте два объекта типаSquareиRectangleв свободной памяти, сохранив их адреса в этих указателях. Выполните обработку объектов путем вызова как виртуальных, так и не виртуальных методов классов. Уничтожьте объекты и обнулите их указатели.

  3. В главной программе объявите массив указателей типа Shape. Создайте несколько объектов типаSquareиRectangleв свободной памяти, сохранив их адреса в этом массиве. Вычислите и распечатайте параметры объектов на экране, используя методы этих классов. Уничтожьте объекты и обнулите массив указателей.

  4. Что неверно в этом фрагменте кода? void SomeFunc (Shape); Shape * pRect = new Rectangle; SomeFunc (*pRect);

  5. Что неверно в этом фрагменте кода? class Shape { public: virtual Shape (); ~Shape(); };

  6. ***Напишите реализацию классов Студент, Заочник из предыдущего задания как виртуальных и главную программу аналогичную п.3.

  7. ***Напишите реализацию классов Транспорт, Автомобиль, Автобус как виртуальных и главную программу аналогичную п.3.