为了账号安全,请及时绑定邮箱和手机立即绑定

请问,C++ 中,类名 & 变量名 是什么意思?

请问,C++ 中,类名 & 变量名 是什么意思?

C++
慕侠2389804 2019-07-07 04:04:37
请问,C++ 中,类名 & 变量名 是什么意思?
查看完整描述

5 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

&表示引用。“&变量名”,就相当于给变量取的一个别名。因为主程序向子程序传递形参后不改变原变量的值。如果想改变原变量的值,就要用指针来传递变量的地址从而改变变量的值。但用指针的话可读性就不是太好,所以用“&变量名”作为变量的别名,既能改变原变量的值,也好让人看懂,就是可读性强,程序就简洁易懂多了。

查看完整回答
反对 回复 2019-07-08
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

打个比方说,现在有个类:class A{};
A &a这个时候a是A的别名,相当于给类A又起了个名字,以后对a的操作都是对A的操作,一般情况下是用在函数形参的时候,在函数中操作类相当操作实参的类,和指针比起来,效率更快,因为是别名,不用分配新的内存。

查看完整回答
反对 回复 2019-07-08
?
手掌心

TA贡献1942条经验 获得超3个赞

是引用的意思,一般对于类或者结构体变量,如果直接返回,是有些问题的,所以我们一般用指针或者引用返回。C++推荐用引用返回,因为其实效率上和指针类似,又避免了指针的一些问题。你看多了就习惯了。
比如,要把这个类增加个重载运算符<<,也是这样写:
class Screen {
...
friend ostream & operator << (ostream & o, Screen & s)
{
o << "[" << s.x << "," << s.y << "]";
return o;
}

...
然后你使用的时候可以这样写:class Screen s; cout << s << endl;
这样写的好处就是你把变量当成普通的结构体或者类变量用就行,而且效率很高。

查看完整回答
反对 回复 2019-07-08
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

c++类名称后面带&符号若声明一个变量则该类声明变量为引用变量,若类名称后面带&符号放在一个方法的前面,则该方法返回一个该类型的变量引用。如下面代码:

1

2

3

4

5

6

7

class A

{

    //...

};

 

A a;//声明类变量a

A &b = a; //声明一个引用变量b=a

引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;


 

 


查看完整回答
反对 回复 2019-07-08
?
ITMISS

TA贡献1871条经验 获得超8个赞

这是c++相对于c新引入的一个概念——引用
引用的性质基本和指针一样。
在平时写函数的时候,假如你在调用的时候传了一个参数v而没用“引用”或者“指针”,那么你写的函数里的v和主程序里的v是毫不相干的。就是函数里面把v的值变了,在函数体结束了以后,主程序里的v依然保持函数调用前的值。
但是有的时候你需要让两个v都改变。比如说你想写一个swap(a,b)函数(交换a,b的值)。这个时候你用普通的传参数的方法是不行的。要么你用指针
void swap(int *pointa,int *pointb)
要么你在函数定义的时候就申明,传的参数是一个引用
void swap(int &a,int &b)【注:这两个语句都是函数申明】
就我现在的编程体会来看,引用和指针基本没有功能上的区别,唯一的区别就是在函数体里面使用的时候指针有指针的一套赋值、取类成员的方法,而引用的使用方法基本和一般变量一样

查看完整回答
反对 回复 2019-07-08
  • 5 回答
  • 0 关注
  • 5167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信