虽然还是大一,但为了应对计算机等级考试...
我看了近半个学期的C++...
其中有不少不很明了的地方...
比如运算符重载返回类型的问题...
在这里归纳一下...
主要写下返回类型的问题.
1)返回引用:
1.相当于返回一个地址,如果返回类型的话,将会创建临时的对象,将会添加额外的消耗,就像返回指针一样.
2.返回引用可以不通过->来得到成员函数和变量,可以继续使用操作符.
2)返回类型:
将会构造一个新的临时对象,因为返回类型时效率不高,所以不使用结构.
区别与反户引用,其使用的是已存在的对象,就不需要重新构造了.
3)返回最大的作用:
可以让函数成为左操作数,意思就是可以给出函数的赋值.
例如:int&fun(int&a)
{
a=100;
ruturn(a);
}
int b=10;
fun(b)==111;
而b=111.
4)作用域问题
临时对象的引用,有作用域的问题.
5)格式的问题
<<不引用的话,就不能写成cout<<a<<b;
而只能写成cout<<a;cout<<b;
如何理解:将cout<<a<<b;
看作(cout<<a)<<b;
ps:前++可以引用,后++必须是值返回,因为要产生一个临时的对象.