请教各位,像图片中的 &TheFunction 中,&表示什么意思?
注:SimpleCat是前面已经声明了的一个类名:class SimpleCat{ };
说明一下,是引用不是指针哈
&其实是和SimpleCat合并起来一起理解的,不是函数名的一部分,它表示的是函数的返回值一个引用类型,其作用是为了能够使函数返回值作为左值,
如果在函数中return this;的话,那么该函数可以支持链式调用
返回引用的好处在于不需要创建临时变量来保存这个值。
如果不返回引用那么函数在返回时需要创建一个临时变量(这个临时变量是无名的)存储这个返回值,然后在将这个值保存到eax在将这个临时变量咔嚓掉,最后在将eax寄存器里的值带给接受返回值的变量(从寄存器到内存)为什么要多此一举?因为CPU无法直接操作内存(具体可以去看我的博客),
但是也可以使用DMA操作(不是所有CPU都支持这个或操作系统,因为需要让出总线的使用权,一般家用系统传输速率已经够了,只用在串口通讯上),如果返回的是引用的话,那么CPU将这块地址直接保存到eax寄存器里直接返回让接受返回值的变量直接引用这块地址内存,而接受返回值的变量是不占用内存的,同时也是为了方便支持左值。
(SimpleCat & ) TheFunction 这样能看懂了吗? 返回 数据类型 为SimpleCat & ,实际就是指针
首先,每种语言都有自己的语法,说以学习语言先从语法开始。
其次,&是C语言中的取地址的,这里是返回指针。
一楼错了,这里是返回引用,不是返回指针
return * pFrisky;
pFrisky为指针,
一二楼说的指针是错的...
这里是指返回的是引用,也就是说把函数体内new出来的变量传引用而不是传值传出来。
&是C语言中的取地址的运算符
这不是取地址符么???哈哈哈哈哈,欢迎入C++的坑
&返回的是对象的引用,在函数内部是return 指针
印象里&是取地址的 很久没用C了 不知道说的对不对。。。尴尬的卖个萌吧。。。。。 = ̄ω ̄=
。。。这个&明明应该和前面的自定义类型在一起
c++里面&这个是引用哦
不输入10个字符不让我回答,这里就是答案:返回函数的引用
返回一个引用,指向被new出来的对象,在这个函数结束的时候这个被new出来的对象还是存在,所以用引用可以减少return时产生的局部变量的构建和销毁的开销。
取函数的地址,你可以打印下来看下
函数名前&代表取地址符或者逻辑与运算。功能:1、取变量的地址:&变量名,这将获得该变量的地址。2、进行逻辑与运算,格式是:变量1&变量2,进行计算时,将会把类型提升为int
楼上说的没毛病。这个&是跟着前面那个返回值的。说明返回值一个引用形式。
这里是指返回的是引用,也就是说把函数体内new出来的变量传引用而不是传值传出来。其实是不怎么懂c
应该这么写比较好 SampleCat& TheFunction();
SampleCat& 是返回类型,表示返回一个SampleCat的引用
把含數當中 new 出來的 SimpleCat 物件對像的指針 返回 ( return *pFirsky ).
一個吐指針 ( return *pFirsky) 回去, 另一個由外部接收
例如:
SimpleCat *sCat = null;
sCat = TheFunction();
這樣一來, sCat 就含有該函數內被 new 出來的物件對像指針.
将返回值作为引用返回而不是简单返回 值
应该是取地址的运算符
http://blog.csdn.net/IT_iverson/article/details/76832741
C++的引用好好看看
&返回的是对象的引用
函数名前面的&指的是返回值,和形参一样。如void fuc_answer(char&c)中的char&;都是代表引用
就是一个引用,你会发现数据结构很多一样的句子会出现&有时候有没有&
说明函数返回类型为引用
simpleCat &TheFunctioin() 的理解错了,正确的理解是: simpleCat & 是一个整体。不是&TheFunction()是一个整体
如果没记错的话,应该是取地址的
SimpleCat& TheFunction() {},返回某个类型的引用,新手应该很少遇到返回引用的函数吧。。
这样写可能清楚点:
SimpleCat& Thefunction(){...}
这里 SimpleCat & 是一个整体,表示这个函数的返回值是 SimpleCat &