以下是我的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 ++中,&符号被用作'的地址。指针运算符。当然,使用&标准是标准的。 之前指针名称,并且复制构造函数在之后使用它,所以我假设这不是同一个运算符。
我找到的&符号字符的另一种用途,与Rvalues和Lvalues相关,如下所示:http://www.cprogramming.com/c++11/rvalue-references-and-move-semantics-in-c++11.html
我的问题不是关于Rvalues和Lvalues,我只是想知道为什么&在
参数之后放置字符,以及调用它以及是否/为什么需要它。答案 0 :(得分:1)
C ++具有C中不存在的引用类型。&
用于定义此类型。
int i = 10;
int& iref = i;
此处iref
是对i
的引用。
通过i
可以看到对iref
所做的任何更改,iref
可以看到对i
所做的任何更改。
iref = 10; // Same as i = 10;
i = 20; // Same as iref = 20;
引用可以是左值引用或右值引用。在上面的示例中,iref
是左值引用。
int&& rref = 10;
此处rref
是左值参考。
您可以在http://en.cppreference.com/w/cpp/language/reference了解有关右值参考的更多信息。