关于c++中的&在参数中的用法
比如说有个a函数voida(B&b){};B是一个类那么为什么接收B的对象的时候,用&而不是用直接Bb,是不是如果用&的话,就能通过函数内的语句能修改原来对象的属性。比如...
比如说有个a函数 void a(B & b){}; B是一个类
那么为什么接收B的对象的时候,用&而不是用直接B b,是不是如果用&的话,就能通过函数内的语句能修改原来对象的属性。比如传进一个c(也是B类的对象),那么就可以修改这个c的属性。
还有,有的可以写作void a(B &)是不是只有在函数头声明是才可以这样简写。
谢谢大家 展开
那么为什么接收B的对象的时候,用&而不是用直接B b,是不是如果用&的话,就能通过函数内的语句能修改原来对象的属性。比如传进一个c(也是B类的对象),那么就可以修改这个c的属性。
还有,有的可以写作void a(B &)是不是只有在函数头声明是才可以这样简写。
谢谢大家 展开
5个回答
展开全部
&在C语言中有取地址的意思,但在C++中增加了引用的意思,“引用”。
(1)void a(B &)只有在函数声明中才可以省略形参名,这是C的规定;
(2)引用在C++中的作用是传引用时,在函数中使用时,就直接传的是实参,不用在函数体内去构
造实参的一个副本,这样提高了效率,因此也达成了直接修改实参的目的;
(3)引用还可以用于给函数返回多个返回值,比如栈的出栈函数,可以这样设计,返回值为bool类
型,判断是否出栈成功(栈空时返回false),另外可以传递引用型实参用于接收出栈元素。
希望可以帮到你,不懂可以追问!
(1)void a(B &)只有在函数声明中才可以省略形参名,这是C的规定;
(2)引用在C++中的作用是传引用时,在函数中使用时,就直接传的是实参,不用在函数体内去构
造实参的一个副本,这样提高了效率,因此也达成了直接修改实参的目的;
(3)引用还可以用于给函数返回多个返回值,比如栈的出栈函数,可以这样设计,返回值为bool类
型,判断是否出栈成功(栈空时返回false),另外可以传递引用型实参用于接收出栈元素。
希望可以帮到你,不懂可以追问!
追问
谢谢,也就是&在作为引用时是当做一个标志符来用的吗?&出现在参数与返回值里作用是不是都是提高效率
追答
YES,而且作为参数还有返回多余返回值与直接修改实参的作用!
展开全部
c++中,类型+& 表示该类型的引用。
引用是C++中的概念,详细内容建议你查资料吧,一句半句也说不清出。
void a(B &)的道理跟 void a(B *)是一样的,函数声明的时候可以省略形参。当然定义的时候就不可这样省略了
引用是C++中的概念,详细内容建议你查资料吧,一句半句也说不清出。
void a(B &)的道理跟 void a(B *)是一样的,函数声明的时候可以省略形参。当然定义的时候就不可这样省略了
追问
&是引用,不是还有取地址的意思吗?那么那个b是不是就是B类对象的地址,虽然加了引用符&,但是传参的时候好像还是传递的类的对象,这样不是加不加&没区别吗
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c++里的引用,你可以理解为起别名并把它给某个变量,这个名字相当于指针(实际上不是,你大致理解一下)的作用但是和变量名一样使用…在作为形参的时候,这个别名是指向外面的变量的…所以你可以在子函数改变传输过来的参数的值…另外写作void a(B &【最好有与声明一样的形参】)在c++里是不提倡的…
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-10-05
展开全部
就是你那个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询