Tal y como te comenta Chiaravel, una clase tiene código y atributos. Con los atributos no existe duda; un entero ocupa 2 bytes, un long 4 un doble 8 y una cadena el número de caracteres + puntero etc etc.
El código también ocupa memoria en un número de bytes que el compilador necesita para transformar una instrucción del lenguaje a su equivalente en código binario.
Si compilas con código de depuración (Muchos compiladores ofrecen esta opción) y depuras la aplicación en mnemotécnicos, comprobarás que:
Código:
for i = 1 to 30
a=a+b
next i
se transforma en algo parecido a
Código:
mov ax, 30
mov cx, [bp+10000]
mov es, [bp+10004]
push ax
add cx,es
mov [bp+10004],cx
pop ax
jnz ax
Si cada mnemotécnico en ensamblador ocupa 1 byte (En algunos casos 2), podemos asegurar que para el código descrito, necesitará 8 bytes de memoria.
El ejemplo ensamblador es esquemático y no necesariamente el compilador lo va a traducir tal y como lo he escrito.