Найти тему

C ++: Вопросы и ответы на собеседовании

Всем салют, друзья!

Сегодня мы с вами ответим на +50 самых часто задаваемых вопросов на собеседовании по C ++, которые определенно помогут вам пройти одно из самых сложных собеседований.

Погнали!

1. Что такое объектно-ориентированный подход к программированию?
Объектно-ориентированное программирование - это подход, который обеспечивает способ модуляции программ путем создания разделенной области памяти для данных, а также функций, которые можно использовать в качестве шаблонов для создания копий таких модулей по запросу. ООП позволяет разложить проблему на несколько сущностей, называемых объектами, а затем построить данные и функции вокруг этих объектов.

2. Что такое класс?
Весь набор данных и кода объект можно сделать определяемым пользователем типом данных с помощью класса. Объекты - это переменные типа Class. Как только класс определен, мы можем создавать множество объектов этого типа. Класс - это набор объектов аналогичного типа.

3. Что такое иерархическое наследование?
Иерархическое наследование происходит, когда признаки одного класса наследуются более чем одним классом.

4. Что такое итераторы в C ++ STL?
Итераторы ведут себя аналогично указателям и используются для доступа к элементам контейнера. Они используются для перехода от одного элемента к другому. Этот процесс известен как «итерация по контейнеру».

5. Что такое полиморфизм?
Это способность демонстрировать или демонстрировать разное поведение в разных случаях. Процесс создания Оператора или Функции по-разному в разных случаях известен как Перегрузка Оператора.

6. Что такое iostream?
iostream - это файл заголовка на C ++. Он включает прототипы функций для стандартных функций ввода-вывода, которые также включают определения для cout и cin. Заголовочный файл объявлен как #include <iostream>

7. Что такое динамическое связывание?
Связывание - это привязка вызова процедуры к коду, который будет выполняться в ответ на вызов. Динамическое связывание также известно как Позднее связывание, что означает, что код, связанный с данным вызовом процедуры, неизвестен до момента вызова во время выполнения.

8. Каковы приложения объектно-ориентированного программирования?
Области применения ООП включают:
1. Системы искусственного интеллекта
2. Моделирование и моделирование
3. Системы реального времени
4. Нейронные сети и параллельное программирование
5. Объектно-ориентированные базы данных

9. Что такое деструктор?
Деструктор используется для уничтожения объектов, созданных Конструктором. Он в основном используется для очистки хранилища, которое больше не доступно. Деструктор - это функция-член. Его имя совпадает с именем класса, но ему предшествует тильда.

10. Что такое пространство имен?
Все программы на C ++ обязательно должны включать пространства имен. Пространства имен в C ++ определяют область идентификаторов, которые используются в программе.

11. Что такое перечислимый тип данных?
Перечислимый тип данных - это еще один определяемый пользователем тип, который позволяет прикреплять числа, тем самым повышая понятность программного кода. Ключевое слово enum автоматически перечисляет список слов, присваивая им значения 0,1,2,3 и так далее.

12. Что такое списки в C ++ STL?
Список - еще один очень важный контейнер в C ++. Он поддерживает двунаправленный линейный список и обеспечивает эффективную реализацию операций удаления и вставки. Доступ к списку возможен только последовательно.

13. Зарегистрируйте операторов в C ++.
new Оператор распределения памяти
. * Указатель на оператор-член
endl Оператор перевода строки
:: Оператор разрешения области действия
:: * Указатель на декларатор-член
delete Оператор освобождения памяти
-> * Указатель на оператор-член setw Оператор ширины поля

14. Объясните блок catch в C ++ Exception Handling.
Блок catch определяется ключевым словом catch, которое перехватывает Исключения, добавленные блоком throw, а затем обрабатывает их соответствующим образом. Блок catch, перехватывающий исключение, следует сразу за блоком try, который вызывает исключение. В одной программе может быть несколько операторов catch.

15. Что такое прототипирование функций?
Прототип функции отображает интерфейс функции к компилятору, предоставляя сведения о количестве и типе аргументов и типе возвращаемых значений. При прототипировании функции или метода шаблон всегда используется при объявлении и определении функции.

16. Что такое метод ifstream ()?
ifstream () предоставляет операции ввода. Он содержит метод open () с режимом ввода по умолчанию. Он также наследует такие функции, как get (), getline (), read (), seekg () и tellg () от istream.

17. Что такое многоуровневое наследование?
Механизм получения класса из ранее производного класса известен как множественное наследование.

18. Что такое объект?
Объекты - это базовые сущности времени выполнения в объектно-ориентированной системе. Они могут представлять собой место, банковский счет или человека. Объекты - это, по сути, переменные типа Class.

19. Что такое встроенная функция?
Чтобы снизить стоимость вызовов и несколько других накладных расходов для небольших функций, C ++ предоставляет новую функцию, называемую встроенной функцией. Встроенная функция - это функция, которая при вызове раскрывается в строке. Это помогает сэкономить место в памяти. Это что-то похожее на Macro Expansion.

20. Что такое метки видимости в C ++?
Ключевые слова Public, Protected и Private известны как метки видимости в C ++. По умолчанию члены любого класса являются закрытыми. Класс с меткой видимости private полностью скрыт от внешней среды и не служит какой-либо цели. Класс с открытой меткой виден другим функциям и классам.

21. Что такое производные контейнеры в C ++ STL?
Характеристики переменной-члена статических данных:
1. Она инициализируется нулевым значением при создании первого объекта ее класса.
2. Он виден только внутри этого класса, но его время жизни - это вся программа.
3. Только одна копия этого члена создается для всего класса и используется всеми объектами этого класса независимо от количества созданных объектов.

22. Включите характеристики дружественных функций.
1. Это не входит в область видимости класса, для которого он был объявлен Другом.
2. Поскольку он не входит в область действия класса, его нельзя вызвать с помощью объекта этого класса.
3. Его можно вызывать как обычную функцию без помощи каких-либо объектов.
4. Обычно в качестве аргументов используются объекты.
5. Он может быть объявлен как публично, так и в частной части Класса, не влияя на его значение.

23. Что такое конструктор?
Конструктор - это специальная функция-член, основная задача которой - инициализировать объекты своего класса. Конструктор вызывается всякий раз, когда создается объект его класса, с которым он связан. Он назван конструктором, потому что он конструирует значения членов данных класса. Он особенный, потому что его имя совпадает с именем класса.

24. Что такое гибридное наследование?
Гибридный класс - это класс, производный от множества классов; он может быть производным от родительского или дочернего класса. Как таковой последовательности нет. Все зависит от потребностей такого класса.

25. Что такое cout и cin?
cout - это объект класса ostream. Поток cout по умолчанию связан с устройством вывода консоли и в основном используется для вывода символов на экран консоли. Он похож на printf в C.
cin является объектом класса istream. По умолчанию поток cin связан с устройством ввода консоли. Он в основном используется для извлечения символов из пользователя. Он похож на scanf в C.

26. Что такое виртуальная функция?
Когда метод объявлен как виртуальный метод, компилятор C ++ определяет, какую функцию следует использовать в качестве среды выполнения, на основе типа объекта, на который указывает базовый указатель, а не типа указателя. Когда мы используем одно и то же имя метода как в производном, так и в базовом классе, метод в базовом классе объявляется виртуальным с использованием ключевого слова virtual, предшествующего его обычному объявлению.

27. Что такое абстракция данных?
Абстракция данных в основном представляет важные функции, не заботясь о фоновых деталях и информации. Поскольку классы используют концепцию абстракции данных, они известны как абстрактные типы данных.
STL предоставляет три производных контейнера с именами Queue, Stack и Priority_Queue. Они также известны как адаптеры контейнера. Их можно разработать из разных контейнеров Sequence. Все они предлагают две основные функции, а именно push () и pop ().

28. Что такое статические элементы данных в C ++?
Характеристики переменной-члена статических данных:
1. Она инициализируется нулевым значением при создании самого первого объекта ее класса.
2. Он виден только внутри этого класса, но его время жизни - это вся программа.
3. Только одна копия этого члена создается для всего класса и используется всеми объектами этого класса независимо от количества созданных объектов.

29. Включите характеристики дружественных функций.
1. Обычно в качестве аргументов используются объекты.
2. Поскольку он не входит в область действия класса, его нельзя вызвать с помощью объекта этого класса.
3. Он не входит в область видимости класса, для которого он был объявлен как Друг.
4. Он может быть объявлен как в публичной, так и в частной части Класса, не влияя на его значение.
5. Его можно вызывать как обычную функцию без помощи каких-либо объектов.

30. Что такое конструктор?
Конструктор - это специальная функция-член или метод, задача которого - инициализировать объекты своего класса. Его имя совпадает с именем класса. Конструктор вызывается всякий раз, когда создается объект связанного с ним класса. Он назван конструктором, потому что он конструирует значения членов данных класса.

31. Что такое гибридное наследование?
Гибридный класс - это класс, производный от множества классов; он может быть производным от родительского или дочернего класса. Как таковой последовательности нет. Все зависит от потребностей такого класса.

32. Что такое STL?
STL - это стандартная библиотека шаблонов. Это программная библиотека для языка программирования C ++, которая повлияла на многие части стандартной библиотеки C ++. Использование STL может значительно сэкономить время и усилия, что приведет к созданию высококачественных программ. Компоненты STL определены в пространстве имен std.

33. Что это за указатель?
C ++ использует уникальное ключевое слово this для представления объекта, вызывающего функцию-член. Это указатель, указывающий на объект, для которого была вызвана эта функция. Например, функция B.min () установит указатель this на адрес объекта B.

34. Для чего используется метод eof ()?
Метод eof () возвращает ненулевое значение, если при чтении обнаружен конец файла, иначе он возвращает ноль.

35. Что такое метод ofstream ()?
Этот метод обеспечивает операции вывода. Он содержит метод open () с режимом вывода по умолчанию. Он также наследует такие функции, как put (), seekp (), tellp () и write () от istream.

36. Что такое вектор в STL?
Вектор - один из наиболее широко используемых контейнеров в C ++. Он хранит элементы в непрерывных ячейках памяти и обеспечивает прямой доступ к каждому элементу с помощью оператора индекса. Вектор может динамически изменять свой размер и, следовательно, распределять память по мере необходимости во время выполнения.

37. Как получить доступ к виртуальным функциям?
Мы должны получить доступ к виртуальным функциям с помощью указателя, объявленного как указатель на базовый класс. Полиморфизм времени выполнения достигается только тогда, когда доступ к виртуальному методу осуществляется через указатель на базовый адрес.

38. Что такое инкапсуляция?
Объединение данных и функций в единый блок или блок, называемый классом, известен как инкапсуляция. Такая изоляция данных от прямого доступа программы называется сокрытием данных. Таким образом, данные недоступны для внешнего мира; только функции, заключенные внутри класса, могут получить к нему доступ.

39. Что такое класс Stream?
Ввод / вывод C ++ состоит из иерархии классов, которые используются для определения различных потоков для работы с файлами консоли, а также с файлами диска. Эти классы называются классами потоков и объявляются в заголовочном файле iostream.

40. Что такое множественное наследование?
Производный класс с несколькими базовыми классами называется множественным наследованием.

41. Что такое карты?
Карта - это последовательность пар ключ-значение, в которой с каждым уникальным ключом связано одно значение. Получение значений происходит быстро и на основе ключа. Нам нужно указать ключ для получения связанных значений.

42. Что такое аргументы командной строки?
Аргументы / параметры, которые отправляются функции main () при выполнении программы из командной строки или командной строки. Все отправленные аргументы представлены только в виде строк.

43. Что такое класс друзей?
Члены класса могут получить доступ к другим членам класса, поместив объявление класса с префиксом "друг" в целевом классе.

44. Как вы перегружаете функции шаблона?
Функция шаблона может быть перегружена либо методами шаблона, либо обычными методами ее имени. Это может быть выполнено следующим образом:

1. Вызовите обычный метод, который точно соответствует.
2. Вызовите шаблонный метод, который можно создать с точным соответствием.
3. Попробуйте обычное разрешение перегрузки для обычных методов и вызовите тот, который соответствует.

45. Подключите алгоритмы STL.
1. Извлечь или немутантные алгоритмы
2. Мутирующие алгоритмы
3. Алгоритмы сортировки
4. Установить алгоритмы
5. Реляционные алгоритмы

46. ​​Объясните попробовать и бросить блок?
Ключевое слово try используется в качестве предисловия к блоку операторов, которые могут генерировать исключения. Этот блок операторов известен как блок Try. Когда возникает исключение, оно бросается в блок catch с помощью оператора throw.

47. Что такое виртуальный базовый класс?
Класс базового класса, квалифицированный как виртуальный в определении наследования. При множественном наследовании производный класс может наследовать члены базового класса через два или более путей наследования. Для виртуального базового класса будет унаследована только одна копия его членов, независимо от количества путей наследования между базовым классом и производным классом.

48. Подключите компоненты стандартной библиотеки шаблонов.
STL содержит несколько компонентов, но основными компонентами являются:
1. Итераторы
2. Алгоритмы
3. Контейнеры
4. Функции

49. Что такое перегрузка оператора?
Перегрузка оператора в основном означает, что оператор ведет себя по-разному в разных случаях. Asterisk * является примером перегрузки оператора, поскольку он автоматически действует как указатель, а также как оператор умножения. Перегрузка операторов - это часть полиморфизма.

50. Что такое наследование?
Это процесс, посредством которого объекты одного класса приобретают свойства объектов другого класса. Он также поддерживает иерархическую классификацию. Наследование в основном обеспечивает концепцию повторного использования.

51. Что такое RTTI?
RTTI представляет информацию о типе среды выполнения. Он определяет тип любой переменной во время выполнения, то есть во время выполнения. Механизм RTTI содержит:
1. Оператор Dynamic_Cast
2. Тип оператора ID
3. Структура Type_Info.

52. Включите итераторы в C ++ STL.
Итераторы в C ++ следующие:
1. Вход
2. Вперед
3. Случайный
4. Выход
5. Двунаправленный.

53. Какова роль спецификатора класса изменяемого хранилища?
Переменную-член объекта постоянного класса можно изменить, объявив ее с помощью спецификатора изменяемого класса хранения. Это применимо только для нестатических и непостоянных переменных-членов класса.

54. Поддерживает ли язык программирования C ++ множественное и многоуровневое наследование?
Да, он поддерживает множественное и многоуровневое наследование.

Итак, это был список некоторых важных вопросов и ответов на собеседовании по C ++. Если вы обнаружили некорректную или отсутствующую информацию в приведенном выше списке, сообщите об этом в комментариях ниже.