21 самый читаемый вопрос и ответ на собеседовании по C++ [для первокурсников]

Опубликовано: 2020-12-17

Даже сегодня C++ так же популярен, как и в 80-х годах. Этот универсальный, скомпилированный и мультипарадигмальный (объектно-ориентированный, процедурный и функциональный) язык программирования играет решающую роль в ИТ-индустрии, особенно в разработке программного обеспечения.

Разработчики во всем мире используют C++ для создания системного программного обеспечения, программного обеспечения для баз данных, встроенного программного обеспечения, корпоративных приложений, приложений с графическим интерфейсом пользователя, компиляторов, расширенных вычислений и графики, операционных систем, браузеров, игр, облачных систем и т. д. Естественно, C++ по-прежнему очень актуален. язык программирования.

В этом посте мы создали список из 21 вопроса для собеседования по C++, которые вам следует знать, если вы стремитесь построить карьеру в области разработки программного обеспечения. Эти вопросы и ответы на интервью по C++ помогут вам растопить лед в этой теме!

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

  1. Определите «Класс» и «Объект».

В C++ класс — это определяемый пользователем тип данных, который отражает различные сущности, действия и функции. Класс содержит элементы данных вместе с их функциями. Доступ к этим элементам данных и функциям определяется тремя модификаторами — private, public и protected. Хотя классы определяют тип данных, они просто определяют структуру данных, а не определяют данные.

Объект является экземпляром класса. Это сущность времени выполнения, которая может представлять человека, место или вещь.

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

  1. Что такое «Спецификатор доступа»?

Спецификатор доступа определяет, как можно получить доступ к членам класса (функциям и переменным) вне области действия класса. C++ имеет три типа спецификаторов доступа.

  • Private — спецификатор private означает, что к членам класса можно получить доступ только в том же классе, в котором они объявлены. В этом случае дочерние классы не могут получить доступ к закрытым членам родительского класса.
  • Protected — спецификатор protected позволяет дочерним классам получать доступ к защищенным элементам данных родительского класса.
  • Public — к членам класса, которые объявлены как «общедоступные», можно получить доступ в коде C++.
  1. Что такое изменяемый спецификатор класса хранения?

Спецификатор изменяемого класса хранения применяется только к нестатическим и непостоянным переменным-членам класса для изменения члена объекта постоянного класса путем его объявления.

  1. Что такое инкапсуляция?

Инкапсуляция относится к обертыванию или связыванию членов данных и их функций внутри класса. Этот процесс выполняется из соображений безопасности, поскольку он ограничивает доступ любым внешним методом. Если элемент данных является закрытым, только его функция-член может получить доступ к данным.

  1. Что такое Абстракция?

Абстракция — это процесс сокрытия внутренних реализаций и отображения только существенных деталей. Доступ к элементам данных и функциям зависит от используемого модификатора. Таким образом, если для определения элементов используется ключевое слово public, доступ к ним может получить любой. Однако, если члены определяются ключевым словом private, вы не можете получить к ним доступ с помощью внешних методов.

  1. Что такое пространство имен?

Пространство имен облегчает логическое разделение кода. Он используется в программах на C++ для предотвращения/разрешения конфликта имен идентификаторов путем назначения им разных пространств имен. Пространство имен определяет область, в которой объявлен идентификатор (переменные, класс и функции). Таким образом, основной целью использования пространства имен является устранение двусмысленности кода.

  1. Дайте определение полиморфизму. Сколько типов полиморфизма существует в C++?

Буквально полиморфизм означает наличие множественных форм. В C++ полиморфизм возникает, когда существует более одной функции под одним и тем же именем, но с разными функциями.

Полиморфизм бывает двух видов:

  • Динамический полиморфизм, также известный как «переопределение» в C++, помогает определить, какой метод функции должен выполняться во время выполнения, а не во время компиляции. Переопределение функций — отличный пример динамического полиморфизма. При переопределении функции дочерний класс содержит метод, который уже существует в родительском классе. Следовательно, дочерний класс переопределяет метод родительского класса. В этом случае и родительский, и дочерний классы содержат одну и ту же функцию с разными определениями.
  • Статический полиморфизм реализуется во время компиляции кода (поэтому он также известен как полиморфизм времени компиляции). Перегрузка методов — прекрасный пример статического полиморфизма. Перегрузка метода допускает наличие более одной функции с одинаковым именем, но с разными функциями.
  1. Объясните назначение ключевого слова «Волатильное».

Функция «volatile» используется для объявления того, что конкретная переменная является изменчивой. Это указывает компилятору изменить переменную извне, тем самым избегая оптимизации компилятором ссылки на переменную.

Читайте: Java-интервью, вопросы и ответы

  1. Что такое встроенная функция?

Любая функция, имеющая ключевое слово «inline» в качестве префикса перед определением функции, является встроенной функцией. Они в основном используются для уменьшения накладных расходов на вызовы функций. Когда вызывается встроенная функция, весь код либо вставляется, либо заменяется в определенной точке вызова встроенной функции. Поскольку компилятор обрабатывает встроенные функции как макросы, они выполняются намного быстрее. Таким образом, объявление небольших встроенных функций помогает повысить эффективность кода.

Стандартный синтаксис встроенной функции:

Встроенное возвращаемое имя функции-типа (параметры)

{

// Здесь находится код функции

}

  1. Что такое «этот» указатель?

В C++ указатель «this» — это указатель-константа, содержащий адрес памяти текущего объекта. Он передается как скрытый аргумент всем вызовам нестатических функций-членов. Кроме того, этот указатель существует как локальная переменная в теле всех нестатических функций.

Читать : Вопросы и ответы на собеседовании по SQL

  1. Есть ли в С++ строковый примитивный тип данных?

C++ не может иметь строковый примитивный тип данных, а имеет класс из стандартной библиотеки шаблонов (STL).

  1. Какова функция оператора разрешения области видимости?

Оператор разрешения области служит двум целям:

  • Это помогает разрешить область глобальных переменных.
  • Когда функция определена вне класса, оператор разрешения области связывает эту функцию с классом.
  1. Что такое деструктор?

Функция-член класса называется деструктором. Его имя такое же, как и имя класса, но с символом тильды (~) в качестве префикса. Всякий раз, когда объект теряет свою область видимости, деструкторы выполняются автоматически.

  1. Объясните разницу между классом ключевых слов и структурой ключевых слов.

Ключевое слово class по умолчанию представляет закрытые члены, тогда как ключевое слово struct по умолчанию напоминает открытые члены.

  1. Определите функцию Pure Virtual.

Чистая виртуальная функция — это функция, которая не содержит никакого определения. Вам нужно только объявить чистую виртуальную функцию, назначив 0 в объявлении. Абстрактные классы в C++ имеют по крайней мере одну чисто виртуальную функцию.

Стандартный синтаксис чистой виртуальной функции:

виртуальная пустота abc()=0; //чистая виртуальная функция.

Проверьте: 15 советов по собеседованию, чтобы выделиться на собеседовании

  1. Каково назначение шаблона класса?

Шаблон класса используется для создания семейства классов и функций. Например, вы можете создать шаблон класса массива, который позволит вам создать массив, включающий различные типы (int, float и т. д.). Вы также можете создать шаблон для функции. Итак, если есть функция add(), вы можете создать несколько версий add().

  1. Что означает «Ошибка переполнения»?

Ошибка переполнения — это арифметическая ошибка, возникающая, когда результат математического вычисления превышает фактическое пространство, выделенное системой.

  1. Чем отличаются delete и delete[ ]?

Функция удаления освобождает одну единицу памяти, выделенную с помощью оператора «новый», в то время как функция удаления [ ] освобождает массив выделенной памяти, выделенный оператором нового [ ].

  1. Какова цель vTable и vptr в C++? Как к ним относится компилятор?

В C++ vTable содержит указатели на функции. С другой стороны, vptr — это указатель, присвоенный vTable. В то время как у каждого класса есть vTable, у каждого объекта есть vptr. Компилятор C++ добавляет дополнительный код в двух местах для эффективного использования и поддержки vTable и vptr:

В каждом конструкторе установить vptr создаваемого объекта и указать на vTable класса.

В коде есть полиморфный вызов функции. Компилятор вставляет код в каждое место, где объявлен полиморфный вызов для поиска vptr с использованием указателя/ссылки базового класса. После получения vptr вы можете получить доступ к vTable производного класса. Вы можете использовать vTable для доступа и вызова функции производного класса show().

  1. Где в С++ хранится автоматическая переменная?

Все локальные переменные по умолчанию являются автоматическими переменными и хранятся в памяти стека.

  1. Как вы можете экспортировать функцию из DLL?

Есть два способа экспортировать функцию из DLL:

  • Вы можете использовать библиотеку типов DLL.
  • Вы можете обратиться к функции из экземпляра DLL.

Запишитесь на курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

Эти вопросы и ответы на C++ являются одними из наиболее часто задаваемых вопросов на собеседованиях. Хотя мы перечислили лишь несколько вопросов, это должно дать вам четкое представление о том, как подготовиться к собеседованию по C++.

Если вам интересно узнать больше о разработке программного обеспечения с полным стеком, ознакомьтесь с программой Executive PG upGrad & IIIT-B по разработке программного обеспечения с полным стеком, которая предназначена для работающих профессионалов и предлагает более 500 часов тщательного обучения, более 9 проектов и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Станьте разработчиком полного стека

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