以下是我的 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 和 C++ 中,与号字符用作指针的“地址”运算符。当然,在指针名称之前使用 & 字符是标准的,复制构造函数在之后使用它,所以我假设这不是同一个运算符。
我发现的 & 字符的另一种用法涉及右值和左值,如下所示:http://www.cprogramming.com/c++11/rvalue-references-and-move-semantics-in-c++11。 html
我的问题不是关于 Rvalues 和 Lvalues,我只是想知道为什么& 字符放在参数之后,这叫什么以及是否/为什么需要。