Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тест_Технология программирования.doc
Скачиваний:
1
Добавлен:
28.09.2019
Размер:
1.01 Mб
Скачать

206. Какие из следующих утверждений верны:

  1. Для переопределения в классе MyClass стандартной опера­ции, необходимо определить ее как метод класса с ключевым словом operator.

  2. Friend-функции нельзя использовать для переопределения операций.

  3. Разрешается переопределять в классе любые опе­рации.

  4. При переопределении операции можно изменить существующий приоритет, действующий при нормальном ее использовании.

  5. Количество операндов при переопределении операции изменять нельзя.

  6. Если типы операндов бинарной операции различаются, и первым идет объект другого типа, то переопределить операцию можно только с помощью friend-функ­ции с двумя параметрами.

Ответ: 1, 5, 6.

207. Напишите прототип метода, переопределяющего операцию сложения для класса MyClass.

Ответ: MyClass operator+(MyClass&);

208. Укажите идентификатор родительского класса:

class Class2

{

};

class Class1: Class2

{

};

Ответ: Class2.

209. Какие элементы базового класса наследует производный класс:

  1. Все;

  2. Только общедоступные;

  3. Только закрытые;

  4. Только защищенные.

Ответ: 1.

210. Какой тип наследования устанавливается по умолчанию

  1. private;

  2. public;

  3. protected.

Ответ: 1.

211. К элементам каких разделов родительского класса возможен доступ из методов дочернего класса

class Class2

{

};

class Class1: public Class2

{

};

  1. private;

  2. public;

  3. protected.

Ответ: 2,3.

212. К элементам каких разделов родительского класса возможен доступ из методов дочернего класса

class Class2

{

};

class Class1: protected Class2

{

};

  1. private;

  2. public;

  3. protected.

Ответ: 2,3.

213. К элементам каких разделов родительского класса возможен доступ из методов дочернего класса

class Class2

{

};

class Class1: private Class2

{

};

  1. private;

  2. public;

  3. protected.

Ответ: 2,3.

214. Как изменится в дочернем классе доступность элементов из разделов public и protected родительского класса для указанного типа наследования (укажите название секции):

class Class2

{

};

class Class1: private Class2

{

};

Ответ: private.

215. Как изменится в дочернем классе доступность элементов из разделов public и protected родительского класса для указанного типа наследования (укажите название секции):

class Class2

{

};

class Class1: protected Class2

{

};

Ответ: protected.

216. Как изменится в дочернем классе доступность элементов из разделов public и protected родительского класса для указанного типа наследования:

class Class2

{

};

class Class1: public Class2

{

};

Ответ: не изменится.

217. Можно ли в производном классе изменить доступность элементов базового класса(да/нет)?

Ответ: да

218. Наследование, при котором производный класс образован от од­ного базового класса, называется …

Ответ: единичное.

219. Наследование, при котором производный класс образован от нескольких базовых классов, называется …

Ответ: множественное.

220. Переопределение метода родительского класса в дочерних классах называется …

Ответ: полиморфизм.

221. При использовании полиморфизма раннего связывания адрес вызываемого метода определяется во время … программы.

Ответ: компиляции.

222. При использовании полиморфизма позднего связывания адрес вызываемого метода определяется во время … программы.

Ответ: исполнения.

223. Полиморфизм позднего связывания реализуется путем переопределения в дочернем классе … метода родительского класса.

Ответ: виртуального.

224. Полиморфизм раннего связывания реализуется путем переопределения в дочернем классе … метода родительского класса.

Ответ: обычного.

225. Какие из следующих утверждений верны:

  1. Раннее связывание дает преимущество в скорости выполнения.

  2. Позднее связывание дает преимущество в гибкости использования.

  3. Раннее связывание позволяет создавать более компактный исходный код программы.

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

  5. При определении в производных классах виртуальных функций количество и типы параметров у всех функций в разных классах должны быть одинаковы.

  6. При переопределении обычной функции количество и типы аргументов изменять нельзя.

  7. Если объявленная виртуальной в базовом классе функ­ция имеет в производном классе другой тип или набор параметров, то виртуальный механизм игнорируется.

  8. Если в произ­водном классе виртуальная функция имеет другой тип возвращаемого значения, то она становится обычной функцией.

Ответ: 1, 2, 5, 7.

226. Какой метод будет вызван в данном случае

class Parent

{

public:

void print(){…}

};

class Derived: Parent

{

public:

void print(){…}

} *pd,dobj;

рd=&dobj;

pd->print();

1) Derived::print()

2) Parent::print()

Ответ: 1

227. Какой метод будет вызван в данном случае

class Parent

{

public:

void print(){…}

} *pp;

class Derived: Parent

{

public:

void print(){…}

} dobj;

рp=&dobj;

pp->print();

1) Derived::print()

2) Parent::print()

Ответ: 2

228. Какой метод будет вызван в данном случае

class Parent

{

public:

virtual void print(){…}

} *pp;

class Derived: Parent

{

public:

void print(){…}

} dobj;

рp=&dobj;

pp->print();

1) Derived::print()

2) Parent::print()

Ответ: 1

229. Абстрактный класс содержит по крайней мере одну … функцию.

Ответ: чисто виртуальную.

230. Измените объявление вирутальной функции так, чтобы она стала чисто виртуальной.

  virtual void draw() { };

Ответ: virtual void draw() = 0;

231. Отметьте ложные утверждения:

  1. Объекты абстрактного класса не могут существовать.

  2. Указатель или ссылка на абстрактный класс не могут быть созданы.

  3. Объекты класса, производного от абстрактного, могут существовать.

  4. Абстрактный класс не может иметь конструктора.

  5. Абстрактный класс может содержать только виртуальные функции.

  6. Вызов не перекрытой чисто виртуальной функции вызывает ошибку.

Ответ: 2, 3, 4, 5.