O que '&' faz em uma declaração C ++?
Eu sou um cara C e estou tentando entender algum código C ++. Eu tenho a seguinte declaração de função:
int foo(const string &myname) {
cout << "called foo for: " << myname << endl;
return 0;
}
Como a assinatura da função difere do equivalente C:
int foo(const char *myname)
Existe uma diferença entre usarstring *myname
vsstring &myname
? Qual é a diferença entre&
em C ++ e*
em C para indicar ponteiros?
Similarmente:
const string &GetMethodName() { ... }
O que é&
fazendo aqui? Existe algum site que explica como&
é usado de forma diferente em C vs C ++?