Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОП. Вопросы. v_1.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
37.39 Кб
Скачать

Основы программирования

Вопросы для подготовки к коллоквиуму

1 Курс, весна, 2014-2015

  1. Введение в ооп.

Инкапсуляция. Полиморфизм. Наследование.Основы понятия класса. Общий формат объявления класса. Доступ к членам класса. Конструкторы и деструкторы. Конструкторы с параметрами.Введение в наследование. Указатели на объекты. Присваивание объектов. Передача объектов функциям. Объекты в качестве возвращаемого значения функцией. Дружественные функции (обзор). Массивы объектов. Указатель THIS. Операторы NEW и DELETE.

  1. Что определяет класс? Чем обличается класс от объекта?

  2. Можно ли объявлять массив объектов? А массив классов?

  3. Разрешается ли объявлять указатель на объект? А указатель на класс?

  4. Допускается ли передавать объекты в качестве параметров, и какими способами? А возвращать как результат?

  5. Как называется использование объекта одного класса в качестве поля другого класса?

  6. Является ли структура классом? Чем класс отличается от структуры?

  7. Объясните принцип инкапсуляции.

  8. Что такое композиция?

  9. Для чего используются ключевые слова public и private?

  10. Можно ли использовать ключевые слова public и private в структуре?

  11. Существуют ли ограничения на использование public и private в классе? А в структуре?

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

  13. Что такое метод? Как вызывается метод?

  14. Может ли метод быть приватным?

  15. Как определить метод непосредственно внутри класса? А вне класса? Чем эти определения отличаются?

  16. Можно в методах присваивать параметрам значения по умолчанию?

  17. Что обозначается ключевым словом this?

  18. Для чего необходимо определение класса?

  1. _________ имеет такое же отношение к _________, как стандартный тип данных к переменной этого типа.

  1. В определении класса члены класса с ключевым словом private доступны:

  1. любой функции программы;

  2. в случае, если вам известен пароль;

  3. методам этого класса;

  4. только открытым членам класса.

  1. Напишите определение класса Leverage, включающего одно закрытое поле типа int с именем crowbar и одним открытым методом с прототипом void pry().

  1. Напишите оператор, создающий объект lever1 класса Leverage, описанного в вопросе 21.

  1. Операция точки (операция доступа к члену класса) объединяет следующие два элемента (слева направо):

  1. член класса и объект класса;

  2. объект класса и класс;

  3. класс и член этого класса;

  4. объект класса и член этого класса.

  1. Напишите оператор, который вызовет метод pry() объекта lever1 (см. вопросы 21 и 22).

  1. Методы класса, определенные внутри класса, по умолчанию становятся _________, ________ .

  1. Напишите метод getcrow() для класса Leverage (см. вопрос 21), который будет возвращать значение поля crowbar. Метод следует определить внутри определения класса.

  2. Конструктор вызывается автоматически в момент______________ объекта.

  3. Имя конструктора совпадает с именем_____________ .

  4. Напишите конструктор, который инициализирует нулевым значением поле crowbar класса Leverage (см. вопрос 21). Конструктор следует определить внутри определения класса.

  5. Верно или неверно следующее утверждение: класс может иметь более одного конструктора с одним и тем же именем?

  1. Методу класса всегда доступны данные:

  1. объекта, членом которого он является;

  2. класса, членом которого он является;

  3. любого объекта класса, членом которого он является;

  4. класса, объявленного открытым.

  1. Предполагая, что метод getcrow(), описанный в вопросе 29, определен вне класса, объявите этот метод внутри класса.

  1. Единственным формальным различием между структурами и классами в С++ является то, что_______________.

  1. Пусть определены три объекта класса. Сколько копий полей класса содержится в памяти? Сколько копий методов функций?

  1. Классы полезны потому, что:

  1. не занимают памяти, если не используются;

  2. защищают свои данные от доступа со стороны других классов;

  3. собирают вместе все аспекты, касающиеся отдельной вещи;

  4. адекватно моделируют объекты реального мира.

  1. Константный метод, вызванный для объекта класса:

  1. может изменять как неконстантные, так и константные поля;

  2. может изменять только неконстантные поля;

  3. может изменять только константные поля;

  4. не может изменять как неконстантные, так и константные поля.

  1. Зачем нужны константные методы? Чем отличается определение константного метода от обычного?

  1. Может ли константный метод вызываться для объектов-переменных? А обычный метод — для объектов-констант?

  1. Истинно ли следующее утверждение: объект, объявленный как константный, можно использовать только с помощью константных методов?

  1. Сколько места в памяти занимает объект класса? Как это узнать?

  1. Продолжительность жизни переменной, которая является:

  1. локальной по отношению к методу, совпадает с продолжительностью жизни функции;

  2. глобальной, совпадает с продолжительностью жизни класса;

  3. нестатическим компонентным данным объекта, совпадает с продолжительностью жизни объекта;

  4. статической внутри метода, совпадает с продолжительностью жизни этой функции.

  1. Истинно ли утверждение о том, что возврат по значению локальной переменной метода не создает никаких проблем?

  1. Если в заданном классе переменная da является компонентными данными,присвоит ли выражение this.da=37; значение 37 переменной da?

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