24 ключевых вопроса для собеседования по C++ с экспертными ответами (обновление 2021)
1) Что такое класс в C++?
Класс — это пользовательский тип данных, объединяющий члены-данные и функции-члены в единую единицу. Он служит чертежом для создания объектов (экземпляров) с одинаковой структурой.
2) Как объявить класс в C++?
class ClassName {
// члены-данные
// функции-члены
};
Объявление заканчивается точкой с запятой. Внутри фигурных скобок определяются интерфейс и детали реализации класса.
3) Какая роль int main() в программе на C++?
Функция main() — точка входа C++-приложения. Компилятор сначала транслирует исходные файлы в объектный код (компиляция), затем объединяет их в исполняемый файл (компоновка). Выполнение начинается в int main() и заканчивается, когда она возвращает значение.
4) Что такое объекты C++?
Объект — экземпляр класса. Он содержит члены-данные класса и может вызывать его функции-члены. Например:
class Student {
public:
int rollno;
std::string name;
};
Student A, B; // A и B — объекты типа Student
5) Каковы характеристики членов класса?
- Члены-данные и функции-члены принадлежат классу.
- Они должны быть объявлены внутри определения класса.
- Члены не могут быть повторно объявлены внутри того же класса.
- Дополнительные члены нельзя добавить за пределами тела класса.

6) Что такое функции-члены?
Функции-члены определяют поведение класса. Они оперируют членами-данными класса и предоставляют интерфейс для взаимодействия с объектами.
7) Какие базовые типы переменных используются для условных выражений?
bool— значения true/falsechar— отдельные символыint— целые числаfloat/double— числа с плавающей точкой
8) Что делает namespace std;?
Пространство имён std содержит все компоненты стандартной библиотеки C++ (классы, функции, объекты). Использование using namespace std; позволяет обращаться к этим компонентам без префикса std::.
9) Что такое цикл и какие типы существуют в C++?
Циклы многократно выполняют блок кода, пока выполняется условие. C++ поддерживает три основных конструкции циклов:
while— выполняется, пока условие истинно.for— итерирует заданное число раз.do‑while— выполняется хотя бы раз, затем повторяется, пока условие истинно.
10) Как классифицируются функции в C++?
- Тип возвращаемого значения
- Имя
- Параметры (тип и количество)
- Тело функции (реализация)
11) Что такое спецификаторы доступа и их типы?
- private — доступно только внутри класса.
- public — доступно из любого кода, видящего класс.
- protected — доступно внутри класса и в производных классах.
12) Что такое операторы? Приведите пример.
Операторы выполняют операции над операндами. Типы включают присваивание, арифметические, логические и др. Пример — арифметическое сложение:
#include <iostream>
using namespace std;
int main() {
int a = 21;
int b = 10;
int c = a + b;
cout << "Value of c: " << c << endl;
return 0;
}
Программа выводит: Value of c: 31.
13) Что такое C-строковый символьный массив?
Это одномерный массив символов, завершающийся нуль-символом \0. Пример:
#include <iostream>
using namespace std;
int main() {
char greeting[6] = {'H','e','l','l','o','\0'};
cout << "Greeting message: " << greeting << endl;
return 0;
}
Вывод: Greeting message: Hello.
14) Что такое ссылочная переменная?
Ссылка — это псевдоним для существующей переменной, объявляемый с оператором амперсанда (&). Она должна быть инициализирована при объявлении и не может быть перепривязана.
15) Объясните полиморфизм в C++.
Полиморфизм позволяет одной и той же операции вести себя по-разному в зависимости от типа объекта. Он обеспечивает перегрузку функций, перегрузку операторов и виртуальные функции для динамической привязки.
Примеры:
- Целочисленное сложение:
5 + 5 - Конкатенация строк:
"Medical" + "Internship" - Сложение с плавающей точкой:
3.14 + 2.27
16) Что такое абстракция данных?
Абстракция данных предоставляет пользователю только существенные детали, скрывая детали реализации. Например, cout выводит текст, не раскрывая, как осуществляется доступ к устройству вывода.
17) Что такое обработка исключений в C++?
try— обрамляет код, который может выбросить исключение.catch— обрабатывает конкретные типы исключений.throw— генерирует исключение.
18) Что такое инкапсуляция данных?
Инкапсуляция объединяет данные и операции в единую единицу (класс) и ограничивает прямой доступ к членам-данным, способствуя модульности и поддерживаемости.
19) Каковы типы функций-членов?
- Простые (нестатические, неконстантные)
- Статические — принадлежат классу, а не экземпляру.
- Константные — не модифицируют объект.
- Встроенные (inline) — подсказка компилятору о встраивании.
- Дружественные (friend) — не являются членами, но могут обращаться к private/protected членам.
20) Что такое операторы принятия решений? Приведите пример if.
ifstatementswitchstatement- Условный (тернарный) оператор
Пример:
#include <iostream>
using namespace std;
int main() {
int x = 10, y = 5;
if (x > y) {
cout << "x is greater than y" << endl;
}
return 0;
}
21) Что такое многопоточность?
Многопоточность обеспечивает одновременное выполнение нескольких потоков в рамках одного процесса. Типы:
- На основе процессов — отдельные процессы делят системные ресурсы.
- На основе потоков — несколько потоков делят одно и то же адресное пространство процесса.
22) Что такое апкастинг (upcasting)?
Апкастинг преобразует указатель или ссылку на производный класс в тип базового класса, обеспечивая полиморфное поведение.
23) Что такое препроцессор?
Директивы препроцессора (#include, #define и др.) инструктируют компилятор выполнять текстовые подстановки перед фактической компиляцией.
24) Что такое копирующий конструктор и его назначение?
Копирующий конструктор создаёт новый объект как копию существующего объекта того же класса. Он вызывается при инициализации объекта, передаче аргументов по значению или возврате значения.
Бесплатная загрузка PDF: Вопросы и ответы для собеседования по C++
Язык C
- Руководство по собеседованиям в облаке 2024: экспертные вопросы и ответы
- Классы и объекты в C++: практическое руководство по объектно-ориентированному программированию
- Дружественные функции и классы в C++: мастерство контроля доступа
- Шаблоны классов в C++: практическое руководство
- Топ-10 одноплатных компьютеров 2021: производительность, потребление и применения
- Автоматизация литья: экспертные инсайты и новые тренды
- C++ Struct vs Class: ключевые отличия, синтаксис и лучшие сценарии использования
- 15 лучших IDE для C++ на Windows, macOS и Linux — бесплатные и платные (2021)
- Топ-10 IDE для C# на Windows, macOS и Linux — обзор 2021
- Классы хранения в C++: область видимости, время жизни и использование