References as they say have same address as original variable then why do they consume memory. Refer this post Reference in place of getters? in this example if I have reference as a class member the size of class increase.
Edit 1
Here is the output I get on VS 2010 Express
The program:
class X
{
    int i;
    int &I;
public:
    X():I(i){}
}x;
class Y
{
    int i;
public:
    Y(){}
}y;
int main()
{
    int j =0;
    int &J = j;
    return 0;
}
Watch Window:

Disassembly:
int main()
{
01101390  push        ebp  
01101391  mov         ebp,esp  
01101393  sub         esp,0D8h  
01101399  push        ebx  
0110139A  push        esi  
0110139B  push        edi  
0110139C  lea         edi,[ebp-0D8h]  
011013A2  mov         ecx,36h  
011013A7  mov         eax,0CCCCCCCCh  
011013AC  rep stos    dword ptr es:[edi]  
    int j =0;
011013AE  mov         dword ptr [j],0  
    int &J = j;
011013B5  lea         eax,[j]  
011013B8  mov         dword ptr [J],eax  
    return 0;
011013BB  xor         eax,eax  
}
It looks like this is implemented as exactly as a pointer in VS at least.
 
     
     
    