Использование Оператор & в сигнатурах функций C ++

Я сейчас читаю Accelerated C ++ и понял, что не совсем понимаю, как & работает в сигнатурах функций.

int* ptr=#

означает, что ptr теперь хранит адрес как num, но что это значит?

void DoSomething(string& str)

насколько я понимаю, это передача по ссылке на переменную (что означает передачу адреса), но когда я делаю

void DoSomething(string& str)
{
  string copy=str;
}

что он создает копию str. Я думал, что это вызовет ошибку, поскольку я пытаюсь присвоить указатель переменной.

Что здесь происходит? И в чем смысл использования * и & в вызовах функций?

24
задан Bo Persson 29 July 2011 в 19:41
поделиться