引语:最近本人研读以前一个项目的代码,由于时间比较充分,兼顾学习,所以看到一处函数返回引用,于是有些疑惑,所以仔细想了一番,并且本着专研的精神小小的研究了一下,于是就有了一下的感想和收获。
首先思考下面这个函数:
int & CardID()
{
static int iCardID;
return iCardID;
}
我第一眼看上去,为啥要返回一个引用呢,作者脑袋是被驴踢了吗?好端端的代码不写,搞个引用出来,徒增费解。因为,假设你设置一个变量int c,然后赋值 c=CardID ,由于c并不是引用类型的变量,实际上还是重新赋值而已,返回不返回引用没啥意义,然后继续往下看,豁然开朗呀,CardID()=c,原来如此啊,使用返回值为引用的变量居然可以赋值,相信很多搞过java代码的人,都明白,eclipse可以自动生成set get函数,但是c++中使用引用,完全可以只写一个函数来实现get set函数,不得不感叹编写代码的奇妙之处,以后再也不用写get set了,一个函数完成get set双重功能。
总结:c++有很多凌琼碎玉,只要自己用心思考,多研究,就可以发现很多实用的智慧。