вот фрагмент:Почему этот кусок кода не работает, как я думаю?
Test & returnref(){
Test *obj = new Test();
cout << &obj << endl;
return *obj;
}
int main(){
Test &object = returnref();
cout << &object;
cin.get();
return 0;
}
и этот код генерирует следующее:
0016FBC8
004D4B98
почему не так
0016FBC8
0016FBC8
?
Я думаю, что если я верну ссылку на динамически созданный объект (в куче), он должен быть точно таким же объектом, поэтому адреса должны быть равны.
Почему я не прав?
Поскольку ваша функция печатает адрес переменной автоматического указателя; ваш 'main()' печатает выделенный в нем адрес (и несвязанный, также утечка памяти). – WhozCraig