Ниже приведен отрывок из моего текста на C++, иллюстрирующий синтаксис объявления класса с помощью конструктора копирования.
class Student {
int no;
char* grade;
public:
Student();
Student(int, const char*);
Student(const Student&);
~Student();
void display() const;
};
Конструктор копирования, как показано здесь:
Student(const Student&);
Имеет амперсанд после параметра Student.
Я полагаю, что в C и С++ символ амперсанда используется как оператор «адреса» для указателей. Конечно, стандартно использовать символ & перед имени указателя, а конструктор копирования использует его после, поэтому я предполагаю, что это не один и тот же оператор.
Другое использование символа амперсанда, которое я нашел, относится к значениям R и L, как показано здесь: http://www.cprogramming.com/c++11/rvalue-references-and-move-semantics-in-c++11.html
Мой вопрос не о R-значениях и L-значениях, я просто хочу знать, почему символ & помещается после параметра, и как это называется, и если/почему это необходимо.
&
означает, что это ссылка наconst Student
, а не копия. en.wikipedia.org/wiki/Reference_%28C%2B%2B% 29а> - person rlbond   schedule 23.10.2015