¿Cómo se determina el tamaño de un objeto en C ++?

Por ejemplo, digamos que tengo una clase Temp:

class Temp
{
    public:
        int function1(int foo) { return 1; }
        void function2(int bar) { foobar = bar; }

    private:
        int foobar;
};

Cuando creo un objeto de la clase Temp, ¿cómo calcularía cuánto espacio necesita y cómo se representa en la memoria (por ejemplo, | 4 bytes para foobar | 8 bytes para la función1 | etc |)