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

Int main ()

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

cout << y; return 0;

}

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

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

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

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

[a] При выводе результата программы нет комментария

[q]3:1 Пусть имеем класс Point.

class Point

{ int x;

public: Point (int a) {x=a;}

};

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

[a] Point obj = 10;

[a] Point obj;

[a] Point *obj = new Point;

[a] Point obj (10);

[a] Point obj = Point (10);

[q]3:1 Пусть имеем класс

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

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

[a] 8

[a] 4

[a] 16

[a] 32

[a] память под объект не резервируется

[q]3:1 Чем различаются : объявление класса от определения объекта?

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

[a] Отличие определяется конкретной средой программирования

[a] Объявления, также как и определение, заявляет о существовании класса и объекта

[a] Определение объекта присваивает значение классу, объявленному в каком-либо пространстве имен

[a] Ничем, в принципе

[q]3:1 Почему, согласно общей стратегии использования классов, члены - данные (переменные-члены), следует оставлять закрытыми, т.е. private?

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

[a] Чтобы в main() были доступны эти переменные

[a] Так принято в объектном подходе

[a] Из соображений разработки интерфейса программы

[a] Для обеспечения доступа к этим переменным внутри класса

[q]3:1 Открытые методы класса – это функции - члены класса, предназначенные для манипулирования закрытыми переменными – членами класса. Зачем же нужен такой дополнительный уровень косвенного доступа?

[a] Чтобы скрыть от пользователя подробности хранения данных в объектах

[a] Чтобы проще и легче использовать данные объектов

[a] Для модернизации способов хранения и обработки данных, вне тела класса

[a] Чтобы переписывать (модернизировать) методы доступа

[a] Чтобы обеспечивать вызов методов во внешнем программном коде

[q]3:1 Если в классе не объявить конструктор или деструктор, то:

[a] Компилятор сделает это сам

[a] Программа не будет выполняться

[a] При порождении объекта произойдёт ошибка

[a] Компилятор создаст

конструктор с аргументами

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

[q]3:1 В каком из объявлений деструктора класса Point отсутствуют ошибки ?

[a] ~Point ( ){ }

[a] . ~Point ( int x, int y){x=0; y=0;}

[a] ~Point(int x) {}

[a] ~Point(int x) {x=o;}

[a] ~Point( ) {x=0;}

[q]3:1 Что означает модификатор сonst в объявлении функции класса: