Что делает «&» в объявлении C ++?
Я парень на C и пытаюсь понять код на C ++. У меня есть следующее объявление функции:
int foo(const string &myname) {
cout << "called foo for: " << myname << endl;
return 0;
}
Чем сигнатура функции отличается от эквивалентной C:
int foo(const char *myname)
Есть ли разница между использованиемstring *myname
противstring &myname
? В чем разница между&
в C ++ и*
в С указывать указатели?
По аналогии:
const string &GetMethodName() { ... }
Что это&
делать здесь? Есть ли сайт, который объясняет, как&
используется по-разному в C против C ++?