关于c++中的&在参数中的用法

比如说有个a函数voida(B&b){};B是一个类那么为什么接收B的对象的时候,用&而不是用直接Bb,是不是如果用&的话,就能通过函数内的语句能修改原来对象的属性。比如... 比如说有个a函数 void a(B & b){}; B是一个类
那么为什么接收B的对象的时候,用&而不是用直接B b,是不是如果用&的话,就能通过函数内的语句能修改原来对象的属性。比如传进一个c(也是B类的对象),那么就可以修改这个c的属性。
还有,有的可以写作void a(B &)是不是只有在函数头声明是才可以这样简写。
谢谢大家
展开
 我来答
cookie妈咪
2012-10-05 · TA获得超过1188个赞
知道小有建树答主
回答量:446
采纳率:50%
帮助的人:229万
展开全部
&在C语言中有取地址的意思,但在C++中增加了引用的意思,“引用”。
(1)void a(B &)只有在函数声明中才可以省略形参名,这是C的规定;
(2)引用在C++中的作用是传引用时,在函数中使用时,就直接传的是实参,不用在函数体内去构
造实参的一个副本,这样提高了效率,因此也达成了直接修改实参的目的;
(3)引用还可以用于给函数返回多个返回值,比如栈的出栈函数,可以这样设计,返回值为bool类
型,判断是否出栈成功(栈空时返回false),另外可以传递引用型实参用于接收出栈元素。

希望可以帮到你,不懂可以追问!
追问
谢谢,也就是&在作为引用时是当做一个标志符来用的吗?&出现在参数与返回值里作用是不是都是提高效率
追答
YES,而且作为参数还有返回多余返回值与直接修改实参的作用!
召走刀文
2012-10-05 · TA获得超过1204个赞
知道小有建树答主
回答量:597
采纳率:57%
帮助的人:230万
展开全部
c++中,类型+& 表示该类型的引用。
引用是C++中的概念,详细内容建议你查资料吧,一句半句也说不清出。
void a(B &)的道理跟 void a(B *)是一样的,函数声明的时候可以省略形参。当然定义的时候就不可这样省略了
追问
&是引用,不是还有取地址的意思吗?那么那个b是不是就是B类对象的地址,虽然加了引用符&,但是传参的时候好像还是传递的类的对象,这样不是加不加&没区别吗
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夏天的太阳君
2012-10-05 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:69.5万
展开全部
c++里的引用,你可以理解为起别名并把它给某个变量,这个名字相当于指针(实际上不是,你大致理解一下)的作用但是和变量名一样使用…在作为形参的时候,这个别名是指向外面的变量的…所以你可以在子函数改变传输过来的参数的值…另外写作void a(B &【最好有与声明一样的形参】)在c++里是不提倡的…
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿四哥vlog
2021-03-25 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:607
采纳率:0%
帮助的人:27.9万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-05
展开全部
就是你那个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式