请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

complex类返回引用

老师你好,请问在设计Complex类中等号函数的时候,设计成引用和不用引用,这两种方法从结果上有什么区别呢?
图片描述

正在回答

2回答

C++在实现时给了程序员足够的自由和灵活性,使得语言几乎可以实现任何你想要的功能。但有些好的原则和实现如果你不遵守就会有问题。比如这里的=运算符重载就是,这样传参和返回值的方式是几乎所有C+++程序员都遵守的方式,也是最高效的方式。你可以设计你自己的方式,但是别人用起来发现没有遵从约定就很奇怪,显得很不专业,和别人合作时就会出问题。

0 回复 有任何疑惑可以回复我~
  • 提问者 jerry_zhu13 #1
    谢谢老师
    回复 有任何疑惑可以回复我~ 2020-12-17 09:40:03
weixin_慕用3190220 2020-12-16 18:05:42

我是这样理解的。把Complex想象成int

int i,j,k;

i = j = k =0;

如果返回非引用的话,上面的赋值语句效率会变的很低,因为涉及到3次额外的对象创建和析构。

0 回复 有任何疑惑可以回复我~
  • 提问者 jerry_zhu13 #1
    所以用引用的区别是只有在效率这一方面的意思吗
    回复 有任何疑惑可以回复我~ 2020-12-16 19:13:00
  • weixin_慕用3190220 回复 提问者 jerry_zhu13 #2
    这个应该只是其中一个方面,我刚刚看了下cpp primer 第五版,书上是这么解释的:
    为了与内置类型的赋值运算符保持一致,,,,,,,这个新的赋值运算符返回其左侧运算对象的引用
    回复 有任何疑惑可以回复我~ 2020-12-16 19:49:10
  • weixin_慕用3190220 回复 提问者 jerry_zhu13 #3
    具体等老师来答复把~我也是一知半解
    回复 有任何疑惑可以回复我~ 2020-12-16 19:50:14
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信