Reference Member Variable Test

class A
{
public:

int &x;
int y;

A(): x(y), y(0) {};
};

int main( int argc, char** argv )
{
A a;
cout << a.x << endl;
cout << a.y << endl;
cout << sizeof(a) << endl;
return 0;
}

출력결과:
0x7ffc7ec744e8
0x7ffc7ec744e8
12

a.x와 a.y의 메모리 주소는 같게 출력되지만, a의 크기는 4(=sizeof(int))가 아닌 8이 된다.

Reference takes it’s own space in memory.

(Linux x64에서 테스트)

Leave a Reply