У меня есть код ниже, работающий на 32-битных окнах, visual-studio.
template <class T>
class Test
{
public:
T &ref;
Test(T &x)
:ref(x)
{}
};
int main()
{
cout<<"sizeof Test<int> : "<<sizeof(Test<int>)<<endl;
cout<<"sizeof Test<double> : "<<sizeof(Test<double>)<<endl;
cout<<"sizeof Test<char> : "<<sizeof(Test<char>)<<endl;
}
Вывод:
sizeof Test<int> : 4
sizeof Test<double> : 4
sizeof Test<char> : 4
Компилятор, выдающий 4 байта для ссылочной переменной внутри класса irrespectтипа ссылки.Значение переменной не может быть сохранено в этих 4 байтах.
Какая информация будет храниться в этих 4 байтах?
Внутренне ли он хранит адрес референта?так что и ссылка, и референт могут записывать в одно и то же место для синхронизации друг с другом.
Или это имя референта сохраняется в таблице символов?