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