Имя пользователя:
Пароль:
 

Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


ещё полезные примеры использования ссылки
Код: Выделить весь код
// аналог with в делфи:
// допустим есть структура struct1_type struct1, в ней struct2_type struct2, в ней int field1, int field2, ...;

// без ссылок:
struct1.struct2.field1 = 1;
struct1.struct2.field1 = 2;
...

// со ссылкой:
{
  struct2_type& s(struct1.struct2);
  s.field1 = 1;
  s.field2 = 2;
  ...;
}
уменьшение операций копирования при передачи сложных объектов как параметров (по ссылке)
Код: Выделить весь код
// void Window::setText(const string& s)
// Point Window::setMeasure(const string& s);
// class Form1 : Window {...};

void TForm1::setText(const string& s)
{
   setMinimumSize(measureText(s)); // не копируется, а передаётся та же строка (её адрес)
   Window::setText(s); // опять не было копирования
}

...

// создалась переменная типа string, инициализировалась строкой
// потом от неё взялся адрес и отправился в виде ссылки как параметр Form1::setText
// при выходе из функции string уничтожился
form1.setText("Form1 caption");

Отправлено: 22:48, 28-02-2007 | #5