Здравствуйте, FDSC, Вы писали:
<skepped>
FDS>Можно ссылочку (на открытый проект) на пример реального кода, где используются ссылки как поля объектов. Или просто привести здесь код, когда вот без это ссылки жизнь становится нехорошей? Просто ну вот не приходит в голову кому и зачем может такое понадобится.<skippe>
опять не из реального проекта, но идея должна быть понятна:
int somefunc()
{
struct ConnectGuard
{
Connection &c;
ConnectGuard(Connection &c): c(c){}
~ConnectGuard(){ c.Close(); }
}
Connection c;
if(c.Open(...))
{
ConnectGuard(c);
....
if(...)
return -1;
....
if( ....)
return -1;
....
}
}
В общем RAII. Не нужно закрывать соединение, оно само закроется.
А также файлы, хэндлы и прочая может быть автомат. освобождены/деинициализированы и т.д.)