Что занимает место при создании нового объекта, так это данные объекта, а не машинный код операций с этими данными - если вы хотите, вы можете думать о функциях-членах как о «обычных», свободных функциях, которые неявно передаются указатель this
.
Например, с точки зрения codegen, разница между
невелика
struct A { int x; void foo(); };
и
struct A {};
void foo( A* self );
.
Для виртуальных функций это не совсем так, потому что каждая виртуальная функция добавляет указатель на виртуальную таблицу, но это другая история.