Битовые поля в C++ — это способ экономии памяти, позволяющий задавать члены класса с точным размером в битах. Например, в структуре можно выделить под день недели всего 3 бита, а под день месяца — 6.
struct Date {
unsigned short nWeekDay : 3; // 0..7 (3 бита)
unsigned short nMonthDay : 6; // 0..31 (6 бит)
unsigned short nMonth : 5; // 0..12 (5 бит)
};❗️Битовые поля могут усложнять код и отладку, а также имеют ограничения (например, нельзя получить адрес битового поля).