请问函数名前面的&符号表示什么意思?

请教各位,像图片中的 &TheFunction 中,&表示什么意思?

注:SimpleCat是前面已经声明了的一个类名:class SimpleCat{ };
图片说明

说明一下,是引用不是指针哈

&其实是和SimpleCat合并起来一起理解的,不是函数名的一部分,它表示的是函数的返回值一个引用类型,其作用是为了能够使函数返回值作为左值,
如果在函数中return this;的话,那么该函数可以支持链式调用

返回引用的好处在于不需要创建临时变量来保存这个值。
如果不返回引用那么函数在返回时需要创建一个临时变量(这个临时变量是无名的)存储这个返回值,然后在将这个值保存到eax在将这个临时变量咔嚓掉,最后在将eax寄存器里的值带给接受返回值的变量(从寄存器到内存)为什么要多此一举?因为CPU无法直接操作内存(具体可以去看我的博客),
但是也可以使用DMA操作(不是所有CPU都支持这个或操作系统,因为需要让出总线的使用权,一般家用系统传输速率已经够了,只用在串口通讯上),如果返回的是引用的话,那么CPU将这块地址直接保存到eax寄存器里直接返回让接受返回值的变量直接引用这块地址内存,而接受返回值的变量是不占用内存的,同时也是为了方便支持左值。

(SimpleCat & ) TheFunction 这样能看懂了吗? 返回 数据类型 为SimpleCat & ,实际就是指针

首先,每种语言都有自己的语法,说以学习语言先从语法开始。
其次,&是C语言中的取地址的,这里是返回指针。

一楼错了,这里是返回引用,不是返回指针

return * pFrisky;
pFrisky为指针,

  • pFrisky为解引用, 所以返回的是一个对象, SimpleCat & TheFunction() {} 中的 SimpleCat & 对应于返回 对象的引用

一二楼说的指针是错的...
这里是指返回的是引用,也就是说把函数体内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 ).

讓外部**呼叫者**接收用該指針物件用的 所以必須在 含數前贅詞加上 SimpleCat & (解指針返回物件對像用)

一個吐指針 ( 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 &