Класс без каких-либо элементов данных и функций-членов такой тип класса известен как пустой класс. Размер объекта пустого класса всегда 1 байт.
Когда мы создаем объект любого класса, в этот момент объект всегда получает 3 характеристики, т. Е.
- государственный
- Поведение
- Идентичность
Когда мы создаем объект пустого класса в то время состояние этого объекта нет ничего. Поведение этого объекта также не имеет значения, но компилятор присваивает ему уникальный адрес. Память в компьютере всегда организована в виде байтов и минимальной памяти, доступной по адресу адреса объекта, составляет 1 байт. Вот почему размер объекта пустого класса составляет 1 байт.
Существует фиктивный элемент-заполнитель, размер которого составляет один байт. Поскольку для массива Test [10] каждый объект должен иметь уникальный адрес. – legends2k
Интересной оптимизацией является «Пустая базовая оптимизация», а это означает, что если вы наследуете от пустого базового класса (без атрибута, без виртуальных методов), то размер вашего класса не будет расти. Существует ряд (других) условий, но это объясняет, почему частное наследство от предикатов в некоторых ситуациях. –
[аналогичный вопрос 1] (http://stackoverflow.com/questions/1626446) и [аналогичный вопрос 2] (http://stackoverflow.com/questions/621616/). – Lazer