Изменения

Перейти к: навигация, поиск

Старые вопросы на экзамен по C++

1183 байта добавлено, 06:28, 16 июня 2011
Часть 4
# Когда выполняется понижающее приведение типов?
# Объясните, что такое «срезка» или «расщепление».
#: Что это???
# Объясните, зачем нужны виртуальные функции.
#: Чтобы перегрузить их поведение при наследовании.
# Что такое связывание?
#: Связывание - сопоставление вызова функции с телом функции, которую вызовут.
# Чем «раннее» связывание отличается от «позднего»?
#: Раннее связывание - компилятор/компоновщик решают какая функция будет вызвана на этапе компиляции. Позднее - нужная функция выбирается на в рантайме.
# Какие два вида полиморфизма реализованы в С++?
#: Статический и динамический
# Дайте определение полиморфного класса.
#: Класс, в котором есть виртуальные методы.
# Может ли виртуальная функция быть дружественной функцией класса?
#: да
# Наследуются ли виртуальные функции?
#: наследуются(иначе нафига они? по определению :) ).
# Каковы особенности вызова виртуальных функций в конструкторах и деструкторах?
# Можно ли сделать виртуальной перегруженную операцию, например, сложение?
#: Можно
# Может ли конструктор быть виртуальным? А деструктор?
#: Нет. Да.
# Как виртуальные функции влияют на размер класса?
#: К размеру класса добавляется размер виртуальной таблицы функций.
#: Да
# Можно ли объявить деструктор чисто виртуальным?
#: да# Чем отличается чистый виртуальный деструктор от чистой виртуальной функции?//чистый деструктор o_O
# Зачем требуется определение чистого виртуального деструктора?
#: чтобы можно было удалять объекты по указателю на базовый класс.
# Наследуется ли определение чистой виртуальной функции?
#: Да
# Приведите классификацию целей наследования.
#: Что это??
# Объясните разницу наследования интерфейса от наследования реализации.
#: ????
# Назовите причины, требующие разделения программ на части.
#: во-первых, просто декомпозиция, для меньшей путаницы
#: во-вторых, для того чтобы уменьшить время компиляции
# Дайте определение термина «единица трансляции»?
#: Данные, которые поступают компилятору для создания объектного файла, уже после того как прошли препроцессинг.
# Чем отличается файл с исходным текстом от единицы трансляции?
#: файл с исходным кодом не всегда является единицей трансляции.
# Существуют ли в С++ конструкции, позволяющие идентифицировать отдельный модуль?
#: Что такое модуль??
# Какие способы сборки программы вы можете назвать?
# Что такое «объектный модуль»? Программа, которая «собирает» объектные модули в программу, называется _____________ ?
#: ???. Программа - линкер или компоновщик.
# В чем заключается отличие аргумента «файл» от <файл> в директиве #include?
#: <file> - ищет в папках, которые указаны в свойствах какой-то переменной Include(в вижаке задается свойствами проекта), "file" - в текущей директории.
#: одно
# Сколько определений класса может быть в многофайловой программе?
#: однонесколько
# Чем отличаются стандартные заголовки <string>, <string.h> и <cstring>?
#: <string> - строки C++, библиотеки STL. <string.h> - Строки C. <cstring> - то же, что <string.h>, но все обернуто в пространство имен std.

Навигация