Во время компиляции расположение памяти - это деталь реализации - вам не нужно знать или заботиться.
Однако во время выполнения ... в C ++ классы определяют типы, но (если вы не активируетеRTTI, который допускает ограниченное интроспекцию в классы), как правило, сами не занимают никакой памяти 1 - это всего лишь рамки для построения и уничтожения объектов.Однако их методы - конструкторы, деструкторы, методы экземпляров и методы классов занимают некоторую часть исполняемой памяти, но компиляторы могут и оптимизируют любые такие методы, которые не используются в программе.
Экземпляры типов (то есть объектов, а также примитивов, таких как int
переменные) занимают большую часть памяти в C ++, но для своих функций-членов они ссылаются на свои классы.Сколько именно памяти использует экземпляр определенного класса, полностью и полностью является деталью реализации, и вам, как правило, не нужно заботиться об этом.
1 Даже тогдаСами классы не используют память, а связанный с ними экземпляр std::typeinfo
.Но опять же, это, как правило, реализация, а не штука, на которую даже опытные программисты обращают большое внимание.