Почему sizeof пустого класса в C++ обычно равен 1?

байт (при условии, что у класса нет виртуальных функций).

Короткий ответ

Что ответить на собеседовании

байт (при условии, что у класса нет виртуальных функций).

Подробный разбор

Ответ с пояснениями

1 байт (при условии, что у класса нет виртуальных функций).

Это связано с тем, что каждый объект в C++ должен иметь уникальный адрес в памяти для корректной работы таких механизмов, как указатели. Выделение 1 байта обеспечивает это требование.

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку