Возможный дубликат:
Структура объекта С++ в памяти Vs a Struct
макет памяти объектов С++
Это, наверное, очень глупый вопрос, но я все равно спрошу. Мне любопытно, как выглядит объект в памяти. Очевидно, что в нем должны были быть все его данные-члены. Я предполагаю, что функции для объекта не будут дублироваться в памяти (или, может быть, я ошибаюсь?). Казалось бы, расточительно иметь в памяти 999 объектов с одинаковой функцией, заданной снова и снова. Если в памяти всего 9 функций для всех 999 объектов, то как каждая функция знает, какие данные для членов изменять (я специально хочу знать на низком уровне). Есть ли указатель объекта, который отправляется в функцию за кулисами? Возможно, для каждого компилятора он отличается?
Также, как влияет на это ключевое слово static? Со статическими данными элемента я бы подумал, что все объекты 999 будут использовать то же самое место памяти для своих статических данных элемента. Где это хранится? Статические функции, которые, как я полагаю, также будут иметь одно место в памяти и не должны взаимодействовать с экземплярами объектов, которые, как я думаю, я понимаю.