МК
Михаил Кучинов

Прошу помочь с тестом по C++

1) Может ли быть виртуальная функция у объединения?

а) да, может
б) нет, не может
с) может, но с ограничениями

2) Может ли быть виртуальная функция у перечислимого типа?

а) да, может
б) нет, не может
с) может, но с ограничениями

3) Основная проблема множественного наследования состоит в

а) замедлении программы
б) необходимости явно указывать, к какому базовому классу принадлежит метод
в) возможности существования двух экземпляров базового класса
г) неэкономном расходовании памяти

Заранее благодарен за ответы.

Misha
Misha

Какой-то тест однообразный.. .

б
б
б

Александр
Александр

Николай Веселуха прав на две трети. Ответы на первые два вопроса - действительно б) . Согласно стандарту С++, объединение (union) нельзя использовать в иерархии классов ни как базовый класс, ни как наследуемый класс. Ни о каких виртуальных функциях тем более не может идти речи. То же самое относится и к перечислимому типу (enum).

Но ответ на третий вопрос - в) . Явно указывать, к какому базовому классу принадлежит метод, нужно только в том случае, если методы с одним и тем же именем имеются в обоих базовых классах. Это неудобно, но это меньшая неприятность, чем возможность того, что базовые классы в свою очередь наследуют из одного и того же "супербазового" класса. В этом случае в производном классе ВСЕ методы и ВСЕ члены "супербазового" класса оказываются сдублированными в производном классе. Чтобы этого избежать, пользуются так называемым виртуальным наследованием.

Похожие вопросы
Прошу помочь знающих по c++
Программист из меня не очень, поэтому прошу помочь) Ошибка C++
Програма по c++ (не зделать, а помоч)!
Програма по c++ (не зделать, а помоч)
математика тесты прошу помочь кто может
КТо может помочь с языком C++ в Borland C++ Builder? КТо может помочь с языком C++ в Borland C++ Builder?
Прошу помочь с тестом по химии
немецкий... тест) прошу помочь..
c++ Дерево. Здравствуйте Прошу помочь с задачой!
Всем привет! Прошу помощи по C, C# , C++.