参数是简单类型(如整数)而且程序中不改变参数的值就不要用了,
复杂类型要用,避免拷贝构造函数被调用。如果你想改实际参数的值,也用引用。
--------------------------------------------------
不是说了吗,根据你的数据类型和是否要在函数中改变此参数的值。像求加法这样的简单函数,就不用引用:
int Add(int l, int r)
{
return l + r;
}
如果你要改参数的值,就用。比如一个函数返回几个结果:
void f(int i, int &j, int &k, int &m)
{
j=i++;
j=i*2;
m=j-5;
}
如果你有复杂的类型,也要用引用,因为不用引用就会调用拷贝构造函数把你的复杂对象拷贝一次,比较慢。不过要用常引用:
void f(const MyClass &c)
{
...................
}
Getlistctrl()这个函数就返回的是引用。 我个人觉得引用就可以理解成一个全局变量。无论到那个函数中,都可以对这个引用的值进行修改。而且在调用引用的时候,返回的是你上一次修改的引用。
可以假设这样一个情况:
窗体生成的时候创建了个list对象。我需要在不同的消息响应函数中修改list对象的内容和属性,这个时候就需要用到引用来获得当前的list对象的状态。否则,则需要很麻烦的一系列语句才能得到list这个控件当前的状态。
我自己的一点体会。