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

Int main ()

{ int x, y; x = 7; y = f(x);

cout << y; return 0;

}

<variant>Функция f() должна быть определена после main()

<variant>Требуется подключение файла компиляции <conio.h>

<variant>Вывод невозможен, так как тип значения результата функции есть void

<variant>Аргумент х, при вызове функции f() , должен передаваться ей по ссылке

<variant>При выводе результата программы нет комментария

<question> Пусть имеем класс Point.

class Point

{ int x;

public: Point (int <variant>{x=a;}

};

Укажите неправильный способ создания объекта этого класса?

<variant>Point obj (10);

<variant>Point obj;

<variant>Point *obj = new Point;

<variant>Point obj = 10;

<variant>Point obj = Point (10);

<question> Пусть имеем класс

class Point { private: int x, y; … };

Каков размер памяти, отводимый под объект этого класса?

<variant>память под объект не резервируется

<variant>4

<variant>16

<variant>32

<variant>8

<question> Чем различаются : объявление класса от определения объекта?

<variant>Объявления, также как и определение, заявляет о существовании класса и объекта

<variant>Отличие определяется конкретной средой программирования

<variant>Определение объекта резервирует память для объекта, а объявление класса - заявляет о существовании класса

<variant>Определение объекта присваивает значение классу, объявленному в каком-либо пространстве имен

<variant>Ничем, в принципе

<question> Почему, согласно общей стратегии использования классов, члены - данные (переменные-члены), следует оставлять закрытыми, т.е. private?

<variant>Из соображений разработки интерфейса программы

<variant>Чтобы в main() были доступны эти переменные

<variant>Так принято в объектном подходе

<variant>Благодаря этому обеспечивается инкапсуляция данных внутри класса

<variant>Для обеспечения доступа к этим переменным внутри класса

<question> Открытые методы класса – это функции - члены класса, предназначенные для манипулирования закрытыми переменными – членами класса. Зачем же нужен такой дополнительный уровень косвенного доступа?

<variant>Чтобы обеспечивать вызов методов во внешнем программном коде

<variant>Чтобы проще и легче использовать данные объектов

<variant>Для модернизации способов хранения и обработки данных, вне тела класса

<variant>Чтобы переписывать (модернизировать) методы доступа

<variant>Чтобы скрыть от пользователя подробности хранения данных в объектах

<question> Если в классе не объявить конструктор или деструктор, то:

<variant>Компилятор сделает это сам

<variant>Программа не будет выполняться

<variant>При порождении объекта произойдёт ошибка

<variant>Компилятор создаст конструктор с аргументами

<variant>Ничего не произойдёт - ошибки не будет, и программа выполнится

<question> В каком из объявлений деструктора класса Point отсутствуют ошибки ?

<variant>~Point(int x) {}

<variant>. ~Point ( int x, int y){x=0; y=0;}

<variant>~Point ( ){ }

<variant>~Point(int x) {x=o;}

<variant>~Point( ) {x=0;}

<question> Что означает модификатор сonst в объявлении функции класса: