是引用的意思,一般对于类或者结构体变量,如果直接返回,是有些问题的,所以我们一般用指针或者引用返回。C++推荐用引用返回,因为其实效率上和指针类似,又避免了指针的一些问题。你看多了就习惯了。
比如,要把这个类增加个重载运算符<<,也是这样写:
class Screen {
...
friend ostream & operator << (ostream & o, Screen & s)
{
o << "[" << s.x << "," << s.y << "]";
return o;
}
...
然后你使用的时候可以这样写:class Screen s; cout << s << endl;
这样写的好处就是你把变量当成普通的结构体或者类变量用就行,而且效率很高。
c++类名称后面带&符号若声明一个变量则该类声明变量为引用变量,若类名称后面带&符号放在一个方法的前面,则该方法返回一个该类型的变量引用。如下面代码:
class A
{
//...
};
A a;//声明类变量a
A &b = a; //声明一个引用变量b=a
引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;
你可以把&看出引用变量(类似于*和其它类型搭配),就是像下面最简单例子
#include
#include
using namespace std;
class People
{
public:
People( int g, string n ) : grade( g ), name( n ) {}
int grade;
string name;
};
int main(){
People susan( 99, "Susan" );
cout << susan.name << endl;
People noacc = susan;
noacc.name = "Noacc";
cout << susan.name << endl;
People withacc = susan;
withacc.name = "With";
cout << susan.name << endl;
return 0;
}
这段代码(现场写的,没编译器编,应该没问题)允许后就可以知道结果了,也不多说了。然后呢,就是用这个的好处除了显而易见的之外,还可以提高效率(比一般的参数传递,如果不需要改变,加上const)。如有问题,欢迎探讨,我Q798883827