比如有种情况 定义了两个类A和B 在B中定义了个函数m 它的返回值类型是A类的对象
class A
{....};
class B
{
....
A& m()
{...}
....
};
我看教科书上是这么写的 请问这个&在这里是啥意思?是说返回值是类的对象的函数都要这么写吗?为什么返回值是一般数据类型的就不用写这个&呢? 还是说书印错了。。。。- -!
问题很菜 还繁请前辈赐教
比如有种情况 定义了两个类A和B 在B中定义了个函数m 它的返回值类型是A类的对象
class A
{....};
class B
{
....
A& m()
{...}
....
};
我看教科书上是这么写的 请问这个&在这里是啥意思?是说返回值是类的对象的函数都要这么写吗?为什么返回值是一般数据类型的就不用写这个&呢? 还是说书印错了。。。。- -!
问题很菜 还繁请前辈赐教
C++使用&引用,主要用在参数传递和返回值上,而且主要针对类或结构进行引用,这是基于效率考虑的,因为类和结构一般来说比较大,直接复制副本的话很耗时间,如果用引用操作,则是用实参的别名,表示的是同一个地址。对于一般数据类型,没有必要用引用,因为对一般数据类型直接复制副本跟引用传递效率相当。
忠心感谢斑竹姐姐如此耐心 小弟愚钝还想再麻烦姐姐一下
您所说的关于“等于”的这个事情和我上面说的那个问题有什么联系呢? 还是说只是一个对我的忠告 您说的这是后续事宜里需要注意的地方?
因为我这里这个代码有点长 而且是那种最基本 最简单的东西 没啥价值 我觉得都写出来实在是浪费空间 其他部分我觉得我理解的是正确的 它是这么个意思:
比如A类有个成员函数叫v B类有刚才那个函数m m的作用就是返回A类的一个对象a 于是如下:
class A
{....
void v(int m,int n){}
...
};
class B
{.....
A& m()
{return a;}
};
void main()
{....
b.m().v(4,6); //b是B类的一个对象
....
}