在C++中,什么时候必须使用引用?

如题所述

使用引用,就不用调用对象的拷贝构造函数,将对象本身传如函数里面,比如:

void add(const A& a); // 这样传入的就是引用,调用此函数时,就是直接使用a
void add(A a); // 这样传入的是对象的拷贝进去,需要构造这样的一个对象传递进去,效率没上面的高
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-07
使用引用,就不用调用对象的拷贝构造函数,将对象本身传如函数里面,比如:

void add(const A& a); // 这样传入的就是引用,调用此函数时,就是直接使用a
void add(A a); // 这样传入的是对象的拷贝进去,需要构造这样的一个对象传递进去,效率没上面的高本回答被提问者和网友采纳
第2个回答  2012-11-07
在c++编程中,应时时刻刻都要使用“引用”。刚开始,你可能会不适应,甚至不能接受,慢慢你就会发现,你爱上使用“引用”。
第3个回答  2012-11-07
没有必须的时候,使用指针也可以替代的

c++什么时候该用引用,什么时候可以不用
如果你有复杂的类型,也要用引用,因为不用引用就会调用拷贝构造函数把你的复杂对象拷贝一次,比较慢。不过要用常引用:void f(const MyClass &c){ ...}

在C++中运算符重载的时候究竟什么时候应该加引用,什么时候不应该加引...
如果返回值会被赋值,就必须返回引用,例如=重载\\x0d\\x0a如果返回值是一个局部变量,就一定不能返回引用,例如+重载\\x0d\\x0a如果为了提高效率,参数可以使用引用,\\x0d\\x0a而[]的实际参数经常是一个常量,常量你是无法引用,所以不能用引用作为[]的参数。

C++中引用的作用,就是说该在什么情况下使用引用,以及常引用
任何时候都可以使用引用 当你不想因为自己的失误而改变变量的值时,就用常引用,这样编译器就会自动排查试图改变该变量的操作 并且发出警告

C++中什么时候用指针,什么时候用引用
严格来说,C++是不建议使用指针的,因为面向对象是引用和智能指针的天下,因此,C++来说最好不要用指针使用引用。但是有迫不得已的时候比如在类中定义一个指向成员变量的指针,在函数中进行动态申请的情况,这个时候智能使用指针,或者一些智能指针什么的。所以具体情况具体分析,没有什么绝对。建议尽可能少...

C++中值返回和引用返回有什么区别?在什么情况下应该用引用返回
返回一个对象的时候一般用引用作为返回值。为什么呢?因为C++中的对象是要占用一定的内存空间的,返回引用的话就可以减少一个复制对象的过程,从而减少内存开销。 举个例子吧: 假设有一个类A,有成员函数A& fun();返回的是引用。 那么在main()里我们定义一个对象A a;然后调用fun(); 即a=fun();...

C++中的引用有什么用
在C++中,引用还有一个特殊的类型——常引用。常引用的显著特点是不允许通过引用对绑定的变量或对象进行修改。这为开发者提供了一种安全机制,确保关键数据在特定情况下不受意外更改,从而提高了程序的稳定性和可靠性。引用的使用在C++编程中具有广泛的应用,不仅限于上述场景。它们在函数参数传递、数据结构...

C++中关于引用的一个问题??
你可以把引用理解为一个常指针,所以引用一旦初始化,即不可与其它变量联系起来了。这样可以防止野指针等一些指针的弊病~~~也使得函数的按址传参更便于理解。

C++ 中什么是引用 申请和使用引用要注意哪些问题
所以在传统的c中,如果需要函数的参数具有返回值的能力,往往是通过指针来实现的。比如,实现 两整数变量值交换的c程序如下:void swapint(int *a,int *b){ int temp;temp=*a;a=*b;b=temp;} 使用引用机制后,以上程序的c++版本为:void swapint(int &a,int &b){ int temp;temp=a;a=b;...

C\/C++何时使用引用和指针
指针:大家都知道,指向一个内存地址。但同时请注意一个东东,就是指针的步长(我叫它步长)其实就是指针的类型。C\/C++中,类型转换对于指针来说同样适用,也就是可以改变步长。所以它比较特别,灵活性很大。更特别的一点是:它可以什么也不指向,就对着NULL\/0。引用:它的局限性要大很多,它只是一个...

按引用传递通常在什么具体情况下用到的?在C++中
1.当需要一个函数计算并返回多个结果时可以使用引用型参数,比如,希望函数max_min_aver求出数组a(具有n个元素)元素的最大值、最小值、和平均值,可以使用引用型参数:max_min_aver(double *a,int n,double& max,double& min,double& aver);2.当要传送的参数是较大的结构体类型的变量、含有...

相似回答